/* The height of the settings header (including tab switcher). */
$settings_header_height: 45px;
/* The width of the settings sidebar. */
$settings_sidebar_width: 250px;

label {
    margin: 0;

    .fa-question-circle-o {
        left: 2px;
    }
}

label,
h4,
h3,
/* We need settings-section-title here because some legacy settings
   widgets use a <div> with this class for their heading. */
.settings-section-title {
    a {
        color: inherit;
    }

    .fa-question-circle-o {
        top: 1px;
        /* This should match .settings-info-icon. */
        opacity: 0.6;
        position: relative;

        &:hover {
            opacity: 1;
        }
    }
}

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

    &:hover {
        opacity: 1;
    }
}

.email-change-form,
.user-name-section {
    .settings-info-icon {
        position: relative;
        top: 2px;
        left: 1px;
    }
}

h3,
.settings-section-title {
    .fa-question-circle-o {
        left: 5px;
    }
}

.new-style {
    .block {
        display: block;
    }

    .center-block {
        margin: 0 auto;
    }

    .center {
        text-align: center;
    }

    .w-200 {
        width: 200px;
    }

    .grid {
        label {
            min-width: 200px;
        }

        .warning {
            display: inline-block;
            vertical-align: top;
            width: 150px;
            padding: 5px 10px;
            text-align: left;
        }
    }

    #account-settings,
    #profile-field-settings {
        .grid {
            label {
                min-width: 120px;
            }

            .warning {
                display: block;
                width: calc(100% - 20px - 5px);
                text-align: right;
            }
        }
    }

    .warning {
        #pw_strength {
            width: 140px;
            height: 8px;
            margin: 6px 0 0;
        }
    }

    .button {
        ul {
            text-align: left;
        }
    }
}

.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;
}

.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 hsla(0, 0%, 0%, 0.1);
    }
}

#change_password_modal,
#change_email_modal {
    max-width: 480px;
}

#change_email_modal {
    #change_email_container {
        margin: 0;
    }
}

.admin-realm-description {
    height: 16em;
    width: 100%;
    max-width: 500px;
    box-sizing: border-box;
}

.side-padded-container {
    padding: 0 20px;
}

.setting_notification_sound,
.play_notification_sound {
    display: inline;
    margin-right: 4px;

    i {
        font-size: 22px;
        cursor: pointer;
    }
}

.setting_notification_sound {
    text-transform: capitalize;
}

.table {
    tbody {
        border-bottom: 1px solid hsl(0, 0%, 87%);
    }
}

.wrapped-table {
    word-break: break-word;
    word-wrap: break-word;
    white-space: pre-wrap;
    white-space: normal;
}

.table-condensed td {
    vertical-align: middle;
}

#settings_content {
    table + .progressive-table-wrapper table tr.user_row td:first-of-type {
        width: 20%;
    }

    .admin-table-wrapper table.admin_profile_fields_table tr td {
        width: 28%;
    }
}

#uploaded_files_table > tr > td:nth-of-type(1),
.upload-file-name {
    width: 30%;
    word-break: break-all;
}

#linkifier-settings {
    #linkifier_pattern,
    #linkifier_format_string {
        width: calc(100% - 10em - 6em);
    }
}

#playground-settings {
    #playground_pygments_language,
    #playground_name,
    #playground_url_prefix {
        width: calc(100% - 10em - 6em);
    }
}

td .button {
    margin: 2px 0;
    box-shadow: none;
}

#language_selection_modal {
    table {
        width: 90%;
        margin-top: 20px;
        border-collapse: separate;
    }

    td {
        padding-top: 1px;
    }
}

.settings-section {
    display: none;
    width: calc(100% - 40px);
    margin: 20px;

    &.show {
        display: block;
    }

    form {
        margin: 0;
    }

    .no-padding {
        padding: 0;
    }

    .settings-section-title {
        font-size: 1.4em;
        font-weight: 500;
        margin: 10px 0;

        &.transparent {
            background-color: transparent;
            color: inherit;
        }
    }

    .table-sticky-headers th {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    #id_realm_authentication_methods {
        width: 20%;

        td {
            border: none;
        }
    }

    .table-striped {
        table-layout: auto;
        border-collapse: separate;

        thead th {
            color: inherit;
            background-color: hsl(0, 0%, 100%);
            border-top: 1px solid hsla(0, 0%, 0%, 0.2) !important;
            border-bottom: 1px solid hsla(0, 0%, 0%, 0.2) !important;

            &.active::after,
            &[data-sort]:hover::after {
                content: " \f0d8";
                white-space: pre;
                display: inline-block;
                position: absolute;
                padding-top: 3px;
                font: normal normal normal 12px/1 FontAwesome;
                font-size: inherit;
            }

            &.active {
                opacity: 1;
                transition: opacity 100ms ease-out;

                &.descend::after {
                    content: " \f0d7";
                }
            }

            &[data-sort]:hover {
                cursor: pointer;
                background-color: hsla(0, 0%, 95%);
                transition: background-color 100ms ease-in-out;

                &:not(.active)::after {
                    opacity: 0.3;
                }
            }
        }

        /* Force the actions column to use the minimum space necessary */
        .actions {
            width: 1%;
            white-space: nowrap;
        }
    }

    #admin_page_users_loading_indicator,
    #attachments_loading_indicator,
    #admin_page_deactivated_users_loading_indicator,
    #admin_page_bots_loading_indicator {
        margin: 0 auto;
    }

    .loading_indicator_text {
        font-size: 12px;
        font-weight: 400;
        vertical-align: middle;
        line-height: 20px;
        display: inline-block;
        float: none;
        margin-top: 9px;
    }

    .loading_indicator_spinner {
        width: 30%;
        height: 30px;
        margin-top: 7px;
        vertical-align: middle;
        display: inline-block;
    }

    .inline {
        display: inline !important;
    }

    /* Messy implementation of buttons with text and a pencil icon in them
       having spacing before the pencil icon. */
    button.btn-link i.fa-pencil,
    button[data-dismiss="modal"] i.fa-pencil,
    .dropdown-toggle i.fa-pencil {
        margin-left: 3px;
    }

    .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. */
    #id_realm_enable_spectator_access_label a {
        color: hsl(0, 0%, 20%);
    }
}

#admin-user-list,
#admin-bot-list {
    .table tr:first-of-type td {
        border-top: none;
    }
}

.button,
.input-group {
    margin: 0 0 20px;
}

.input-group {
    /* Class to use when the following input-group is related and should
       appear just after this element. */
    &.thinner {
        margin: 0;
    }

    label.checkbox + label {
        cursor: pointer;
    }
}

.dependent-block {
    margin: -5px 0 15px 23px;
}

.dependent-inline-block {
    display: inline-block;
    margin: 0 0 0 10px !important;
}

.no-margin {
    margin: 0;
}

input[type="checkbox"] {
    + .inline-block {
        margin-left: 10px;
    }

    .inline-block {
        margin: -2px 0 0;
    }
}

.allow-subdomains,
.new-realm-domain-allow-subdomains {
    margin: 0 !important;
}

.realm_domains_info {
    margin-bottom: 0;
}

.admin-realm-form {
    h3 {
        margin-bottom: 10px;
    }

    .subsection-header h3 {
        display: inline;
    }
}

.display-settings-form,
.notification-settings-form {
    .subsection-header h3 {
        display: inline-block;
    }
}

#stream-specific-notify-table .unmute_stream {
    position: relative;
    left: 3px;

    &:hover {
        color: hsl(0, 0%, 20%);
        cursor: pointer;
    }
}

.organization-settings-parent > div:first-of-type {
    margin-top: 10px;
}

.org-settings-form .organization-submission {
    margin-top: 0;
}

#id_org_profile_preview {
    margin-bottom: 20px;
}

.inline-block.organization-permissions-parent div:first-of-type {
    margin-top: 10px;
}

.language_selection_widget {
    .title {
        margin-bottom: 3px;
    }

    .language_selection_button {
        text-decoration: none;
        color: hsl(0, 0%, 20%);

        .fa.fa-pencil {
            margin-left: 5px;
        }
    }
}

.remove-attachment {
    margin-right: 5px !important;
    font-size: 1.1em !important;
    padding-left: 0 !important;
}

#download_attachment {
    padding-left: 0;
    border-left: 0;
}

.remove-alert-word {
    margin-top: 1px;
}

.alert_word_status_text {
    word-break: break-word;
}

.alert-notification {
    display: inline-block;
    vertical-align: top;
    height: auto !important;
    width: auto !important;

    background-color: transparent;
    border-radius: 4px;
    margin-top: 14px;
    margin-left: 10px;
    color: hsl(156, 30%, 50%);
    padding: 3px 10px;

    &:not(:empty) {
        border: 1px solid hsl(156, 30%, 50%);
    }

    &.alert-error {
        color: hsl(2, 46%, 68%);
        border-color: hsl(2, 46%, 68%);
    }

    .loading_indicator_spinner {
        width: 13px;
        height: 20px;
        margin: 0;
    }

    /* make the spinner green like the text and box. */
    .loading_indicator_spinner svg path {
        fill: hsl(178, 100%, 40%);
    }

    .loading_indicator_text {
        margin-top: 0;
        font-size: inherit;
        vertical-align: top;
    }

    img {
        margin-right: 6px;
        vertical-align: middle;
        margin-top: -2px;
    }
}

#profile-field-settings #admin-add-profile-field-status {
    margin-top: 4px;
}

#user-notification-settings {
    .notification-table {
        th,
        td {
            text-align: center;
            vertical-align: middle;
            cursor: default;

            .stream-privacy span.hashtag,
            .filter-icon i {
                padding-right: 0;
            }

            label {
                cursor: default;
            }
        }

        td:first-child {
            text-align: left;
            font-weight: bold;
            word-break: break-all;
        }
    }
}

#profile-settings {
    .custom-profile-fields-form .custom_user_field label,
    .full-name-change-form label,
    .timezone-setting-form label {
        min-width: fit-content;
    }

    .alert-notification.custom-field-status,
    .alert-notification.full-name-status,
    .alert-notification.timezone-setting-status {
        padding-top: 0;
        padding-bottom: 0;
        margin-top: 0;
        padding-left: 0;
        margin-left: 5px;
        border: none;
    }
}

.control-label-disabled {
    color: hsl(0, 0%, 82%);

    &.enabled {
        color: hsl(0, 0%, 20%);
    }
}

.admin-realm-message-retention-days {
    width: 5ch;
    text-align: right;
}

#show-add-user-group-modal {
    margin-bottom: 10px;
}

#add-user-group-form {
    margin: 0;

    /* This 14px is the border and padding of the input element */
    #user_group_description {
        width: calc(100% - 14px);
    }
}

.add-new-emoji-box,
.add-new-alert-word-box,
.add-new-export-box {
    margin-bottom: 20px;
}

.add-new-emoji-box .new-emoji-form,
.add-new-alert-word-box .new-alert-word-form,
.add-new-export-box {
    margin: 10px 0;
}

.add-new-emoji-box,
.add-new-default-stream-box {
    input[type="text"] {
        padding: 6px;
    }
    margin-bottom: 15px;
}

.add-new-emoji-box #emoji-file-name {
    width: 0;
    top: -19px;
    left: 3px;
    position: relative;
    display: inline-block;
    vertical-align: top;

    white-space: nowrap;
    font-style: italic;
    color: hsl(0, 0%, 67%);
}

#emoji_file_input_error {
    vertical-align: middle;
}

.add-new-profile-field-box,
.add-new-linkifier-box,
.add-new-playground-box {
    button {
        margin-left: calc(10em + 20px) !important;
    }
    margin-bottom: 15px;
}

.grey-box .wrapper {
    margin: 10px 0;
}

.admin_profile_fields_table,
.profile_field_choices_table {
    .movable-profile-field-row {
        cursor: move;

        .fa-ellipsis-v {
            color: hsl(0, 0%, 75%);
            position: relative;
            top: 1px;

            + i {
                margin-right: 5px;
            }
        }
    }
}

#admin-linkifier-pattern-status,
#admin-linkifier-format-status {
    margin: 20px 0 0;
}

.progressive-table-wrapper {
    position: relative;
    max-height: calc(95vh - 220px);
    overflow: auto;
    width: 100%;
}

#admin-default-streams-list .progressive-table-wrapper {
    max-height: calc(95vh - 280px);
}

.bots_list {
    display: none;
    list-style-type: none;
    margin-left: 0;

    .image {
        vertical-align: top;
    }

    .name {
        font-weight: 600;
        font-size: 1.1rem;
        margin: 7px 5px;

        overflow: hidden;
        line-height: 1.3em;
        text-overflow: ellipsis;
        white-space: pre;
    }

    .regenerate_bot_api_key {
        position: relative;
        margin-left: 5px;
        color: hsl(0, 0%, 67%);
        transition: all 0.3s ease;

        &:hover {
            color: hsl(0, 0%, 27%);
        }
    }

    .edit-bot-buttons {
        padding-top: 5px;

        button {
            background-color: transparent;
        }

        .btn {
            padding: 4px;
        }

        .sea-green {
            color: hsl(177, 70%, 46%);
        }

        .blue {
            color: hsl(203, 77%, 56%);
        }

        .danger-red {
            color: hsl(0, 56%, 73%);
        }

        .copy-gold {
            color: hsl(51, 90%, 50%);
        }
    }

    .bot-information-box {
        position: relative;
        display: inline-block;
        width: calc(50% - 10px);
        max-height: 220px;
        margin: 5px;

        border-radius: 4px;
        box-sizing: border-box;

        overflow: auto;

        .details {
            display: inline-block;
            width: calc(100% - 75px);
        }
    }

    img.avatar {
        margin: 10px 5px 0 10px;
        height: 50px;
        width: 50px;
        border-radius: 4px;
        vertical-align: top;
        box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.1);
    }

    .email,
    .type {
        margin-bottom: 5px;
    }

    .email .value,
    .api_key .api-key-value-and-button {
        display: block;
        margin-left: 0;
        word-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

    .api_key .api-key-value-and-button {
        font-family: "Source Code Pro", monospace;
        font-size: 0.85em;
        display: flex;
    }

    .bot_info {
        padding: 10px;
    }

    .field {
        text-transform: uppercase;
        font-weight: 600;
        color: hsl(0, 0%, 67%);
    }
}

.bot_error {
    margin-top: 10px;
    margin-bottom: 0 !important;
}

.edit_bot h3 {
    margin: 0;
    font-weight: 400;
}

.bot_edit_errors {
    margin: 0;
}

#bots_lists_navbar .active a {
    background-color: hsl(0, 0%, 98%);
}

#inactive_bots_list .bot_info .reactivate_bot {
    margin-top: 5px;
}

#edit_bot_modal {
    /* Ensure that the dropdown can overflow the modal. */
    .modal__content {
        overflow: visible;
    }
}

.edit_bot_form {
    font-size: 100%;
    margin: 0;
    padding: 0;

    label {
        font-weight: 600;
        color: hsl(0, 0%, 67%);
        margin-top: 5px;
    }

    .buttons {
        margin: 10px 0 5px;
    }
}

.edit_bot_email {
    font-weight: 400;
    font-size: 18px;
    text-align: left;
    margin-top: 0;
    margin-bottom: 10px;

    overflow: hidden;
    max-height: 1.1em;
    text-overflow: ellipsis;
    white-space: pre;
}

#create_bot_form,
#create_alert_word_form,
.admin-emoji-form,
.admin-linkifier-form,
.admin-playground-form,
.admin-profile-field-form,
.edit_bot_form {
    .control-label {
        width: 10em;
        text-align: right;
        margin-right: 20px;
    }
}

.admin-profile-field-form #custom_external_account_url_pattern input {
    width: 70%;
}

#alert-words-table {
    margin: 0;

    li {
        list-style-type: none;

        &.alert-word-item:first-child {
            background: none;
            margin-top: 8px;
        }
    }

    .alert_word_listing .value {
        word-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

    .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(0, 0%, 100%);
    text-decoration: none;
}

#api_key_form,
#change_password_modal {
    .password-div {
        position: relative;

        input[type="text"] {
            margin-bottom: 10px;
        }

        .password_visibility_toggle {
            position: absolute;
            left: 194px;
            top: 32px;
            width: 14px;
            opacity: 0.6;

            &:hover {
                opacity: 1;
            }
        }
    }
}

.emojiset_choices {
    width: 250px;
    padding: 0 10px;

    .emoji {
        height: 22px;
        width: 22px;
    }

    label {
        border-bottom: 1px solid hsla(0, 0%, 0%, 0.2);
        padding: 8px 0 10px;

        &:last-of-type {
            border-bottom: none;
        }

        input[type="radio"] {
            position: relative;
            top: -2px;
            margin: 0 5px 0 0;

            &:checked + span {
                font-weight: 600;
            }
        }
    }

    .right {
        float: right;
    }
}

.open-user-form {
    min-width: initial !important;
}

#api_key_buttons {
    display: inline-flex;

    .regenerate_api_key {
        margin-right: 5px;
    }
}

.right.show .emoji_alt_code {
    font-size: 1.2em;
}

.invite-user-link i {
    text-decoration: none;
    margin-right: 5px;
}

#user-groups {
    .user-group {
        margin-bottom: 20px;
        padding: 10px;
        border-radius: 5px;

        h4 {
            font-weight: normal;
            margin: 0;
            display: flex;
            align-items: center;
            justify-content: left;
        }

        span[contenteditable] {
            display: inline-block;
            word-break: break-all;

            &:empty::before {
                opacity: 0.5;
                display: inline-block;
                content: attr(data-placeholder);
            }
        }

        span[contenteditable]:focus,
        span[contenteditable="true"]:hover {
            border-bottom: 1px solid hsl(0, 0%, 80%);
            margin-bottom: -1px;
            outline: none;
        }

        .pill-container .input[contenteditable]:empty::after {
            content: attr(data-placeholder);
            opacity: 0.5;
        }
    }

    .user-group-status {
        margin-bottom: 10px;
    }

    p {
        line-height: 2;
        margin: 0;
    }

    .spacer {
        margin: 0 2px;
    }

    .subscribers,
    .user-group h4 > .name {
        font-weight: bold;
    }

    .ntm {
        cursor: not-allowed;

        h4 > .button {
            cursor: not-allowed;
            display: none;

            &:hover {
                border-color: hsl(4, 56%, 82%);
            }
        }
    }

    .save-status {
        background-color: transparent;
        padding: 2px 5px;
        border-radius: 4px;
        margin-left: 10px;
        border-style: solid;
        border-width: 1px;
        display: none;
        opacity: 0;
    }

    .checkmark {
        height: 12px;
    }

    .delete {
        margin-left: auto;
    }

    .save-instructions {
        display: none;
        opacity: 0;
        color: hsl(0, 0%, 20%);
        font-size: 0.9em;
    }
}

/* -- new settings overlay -- */
#settings_page {
    height: 95vh;
    width: 97vw;
    max-width: 1024px;
    margin: 2.5vh auto;
    overflow: hidden;
    border-radius: 4px;

    .save-discard-widget-button {
        border-radius: 5px;
        border: 1px solid hsl(0, 0%, 80%);
        padding: 3px 14px 4px 11px;
        text-decoration: none;
        color: hsl(0, 0%, 47%);
        min-width: 80px;
        line-height: 1.2;

        &:hover,
        &:focus {
            background-color: hsl(0, 0%, 100%);
            border: 1px solid hsl(0, 0%, 61%);
            color: hsl(0, 0%, 18%);

            .save-discard-widget-button-icon {
                color: hsl(0, 0%, 47%);
            }
        }

        &.primary {
            background-color: hsl(156, 30%, 50%);
            color: hsl(0, 0%, 100%);
            border: 1px solid hsl(155, 30%, 50%);

            &:hover,
            &:focus {
                background-color: hsl(166, 35%, 57%);
                border: 1px solid hsl(166, 35%, 57%);
            }

            .save-discard-widget-button-icon {
                font-weight: lighter;
                color: hsl(0, 0%, 100%);
            }

            &.saving {
                background-color: hsl(156, 14%, 40%);
                border-color: hsl(156, 14%, 40%);
            }
        }

        .save-discard-widget-button-icon {
            vertical-align: middle;
            margin-right: 3px;
            font-size: 15px;
            font-weight: 500;
        }
    }

    .save-button-controls {
        display: inline;
        margin-left: 15px;

        &.hide {
            display: none;
        }
    }

    .save-button {
        margin-right: 5px;

        .save-discard-widget-button-loading {
            display: none;
        }

        &.saving {
            .save-discard-widget-button-icon {
                display: none;
            }

            .save-discard-widget-button-loading {
                display: inline-block;
                margin-right: 2px;
            }
        }
    }

    .admin-realm-time-limit-input {
        width: 5ch;
        text-align: right;
    }

    .realm-time-limit-label {
        vertical-align: middle;
    }

    h3 {
        font-size: 1.5em;
        font-weight: normal;
        line-height: 1.5;
    }

    h5 {
        font-size: 1.2em;
        font-weight: normal;
        line-height: 1.2;
    }

    .sidebar-wrapper {
        float: left;
        position: relative;
        width: $settings_sidebar_width;
        height: 100%;

        .tab-container {
            box-sizing: border-box;
            height: $settings_header_height;
            padding: 6px;
            border-bottom: 1px solid hsl(0, 0%, 87%);
        }
    }

    .sidebar {
        height: calc(100% - $settings_header_height);
        overflow-y: auto;
        border-right: 1px solid hsl(0, 0%, 93%);

        .header {
            height: auto;
            position: relative;
            width: calc(100% - 20px);
            padding: 10px;
            text-align: center;
            text-transform: uppercase;

            background-color: hsl(180, 6%, 93%);
            border-bottom: 1px solid hsl(0, 0%, 87%);
        }

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

        li {
            padding: 5px 0;
            outline: none;
            cursor: pointer;
            transition: all 0.2s ease;
            border-bottom: 1px solid hsl(0, 0%, 93%);

            &:last-of-type .text {
                border-bottom: none;
            }

            &.active {
                background-color: hsl(0, 0%, 93%);
                border-bottom: 1px solid transparent;
            }

            .text,
            .icon,
            .locked {
                display: inline-block;
                vertical-align: top;
            }

            .text {
                width: calc(100% - 90px);
                padding: 10px 12px 10px 0;
            }

            .icon {
                width: 18px;
                height: 18px;
                margin: 10px;
                text-align: center;

                font-size: 1.4em;
                color: hsl(0, 0%, 53%);

                background-size: cover;
                background-repeat: no-repeat;
            }

            .locked {
                width: 18px;
                height: 18px;
                margin: 14px 8px 6px;

                font-size: 1em;
                color: hsl(0, 0%, 62%);

                background-size: cover;
                background-repeat: no-repeat;
            }
        }

        .org-settings-list {
            display: none;
        }

        .normal-settings-list,
        .org-settings-list {
            position: relative;
        }

        .settings-sticky-bar {
            position: sticky;
            z-index: 1;
            background-color: hsl(0, 0%, 100%);
            top: 0;
        }
    }

    .settings-header {
        padding-top: 1px;

        &.mobile {
            display: none;
            border-bottom: 1px solid hsl(0, 0%, 87%);

            .fa-chevron-left {
                float: left;
                position: relative;
                top: 14px;
                left: 10px;
            }
        }

        h1 {
            text-align: center;
            font-size: 1.1em;
            line-height: 1;
            margin: 15px;
            text-transform: uppercase;
        }

        .exit {
            font-weight: 600;
            position: absolute;
            top: 10px;
            right: 10px;
            color: hsl(0, 0%, 67%);
            cursor: pointer;
        }

        .exit-sign {
            float: right;
            position: relative;
            top: 1px;
            margin-left: 3px;
            font-size: 1.5rem;
            line-height: 1;
            font-weight: 600;
            cursor: pointer;
        }
    }

    .content-wrapper {
        position: absolute;
        left: $settings_sidebar_width;
        width: calc(100% - $settings_sidebar_width);
        height: 100%;
        overflow: hidden;

        .settings-header {
            width: 100%;
            height: $settings_header_height;
            box-sizing: border-box;
            border-bottom: 1px solid hsl(0, 0%, 87%);

            h1 .section {
                font-weight: 400;
                color: inherit;
                opacity: 0.6;
            }
        }

        #settings_content {
            position: relative;
            width: 100%;
            height: calc(100% - $settings_header_height);

            float: left;
            overflow-y: auto;
            overflow-x: hidden;

            background-color: hsla(0, 0%, 0%, 0.02);
        }
    }

    .display-settings-form select {
        width: 245px;
    }
}

#profile-settings,
#edit-user-form {
    .custom_user_field {
        padding-bottom: 20px;

        .field_hint {
            color: hsl(0, 0%, 67%);
        }

        textarea {
            width: max(206px, 25vw);
            max-width: 320px;
            height: 80px;
        }

        &:hover .remove_date {
            display: inline-flex;
        }

        .remove_date {
            opacity: 0.5;
            display: none;
            cursor: pointer;
            position: relative;
            top: 2px;
            left: -20px;

            &:hover {
                opacity: 1;
            }
        }

        .datepicker {
            cursor: default;
        }

        .person_picker {
            min-width: 206px;
        }
    }

    #show_my_user_profile_modal {
        width: 150px;
        margin-top: 20px;
    }

    #show_my_user_profile_modal i {
        padding-left: 2px;
        vertical-align: middle;
    }
}

/* These have enough space for all the options in German. */
.setting_desktop_icon_count_display,
#id_realm_waiting_period_setting,
#id_realm_create_public_stream_policy,
#id_realm_create_private_stream_policy,
#id_realm_invite_to_stream_policy,
#id_realm_private_message_policy,
#id_realm_add_custom_emoji_policy,
#id_realm_user_group_edit_policy,
#id_realm_email_address_visibility,
#id_realm_wildcard_mention_policy,
#id_realm_move_messages_between_streams_policy,
#id_realm_invite_to_realm_policy,
#id_realm_edit_topic_policy,
#id_realm_msg_edit_limit_setting,
#id_realm_delete_own_message_policy,
#id_realm_msg_delete_limit_setting {
    width: 325px;
}

#id_realm_bot_creation_policy,
#id_realm_giphy_rating,
#id_realm_org_join_restrictions {
    width: 100%;
}

.dropdown-list-widget {
    button.dropdown-toggle {
        text-align: left;

        .fa-chevron-down {
            float: right;
            position: relative;
            top: 2px;
            padding-left: 5px;
            color: hsl(0, 0%, 58%);
            font-weight: lighter;
        }

        &.dropdown-toggle {
            /* Match settings for select elements. */
            padding: 4px 6px;

            span {
                line-height: 20px;
                height: 1.4em;
            }
        }

        &:disabled i {
            display: none;
        }
    }

    button.multiselect_btn {
        /* Matches the dropdown input margin so as to keep it aligned */
        margin-left: 9px;
        margin-top: 4px;
    }

    a.dropdown_list_reset_button {
        /* Prevent dark theme from overriding background. */
        background: unset !important;
        border: none;
        margin-left: 10px;

        &:disabled {
            display: none;
        }
    }

    .dropdown-search > input[type="text"] {
        margin: 9px;
    }

    .dropdown-menu {
        top: -7px; /* -(margin+padding), both are set by bootstrap. */
        bottom: auto;
    }

    .dropdown-list-wrapper {
        position: relative;
        height: auto;
        max-height: 200px;
        overflow-y: auto;
        margin-top: 0;
        display: block;
    }

    .dropdown-list-body {
        position: relative;
        margin-top: 0;
        display: block;

        /* In bootstrap v2.3.2, we strictly need
        .dropdown-menu > li > a as the order of the elements
        for the bootstrap style to be applied.
        Since we use a combination of dropdown + simplebar here,
        the structure cannot be possible since simplebar inserts
        elements of its own, so we copy over that style
        from bootstrap to here. */
        li a {
            display: block;
            padding: 3px 20px;
            clear: both;
            font-weight: normal;
            line-height: 20px;
            color: hsl(0, 0%, 20%);
            white-space: nowrap;

            &:hover {
                color: hsl(0, 0%, 100%);
                text-decoration: none;
                background-color: hsl(200, 100%, 38%);
                background-image: linear-gradient(
                    to bottom,
                    hsl(200, 100%, 40%),
                    hsl(200, 100%, 35%)
                );
            }
        }
    }
}

.subsection-failed-status p {
    background-color: hsl(0, 43%, 91%);
    padding: 2px 6px;
    border-radius: 4px;
    margin: 0 0 0 5px;
}

#muted_topics_table {
    width: 90%;
    margin: 0 auto;

    tbody {
        border-bottom: none;
    }
}

#admin-user-list .last_active {
    width: 100px;
}

.required-text {
    &:empty::after {
        content: attr(data-empty);
        display: block;

        font-style: italic;
        color: hsl(0, 0%, 67%);
    }

    &.thick:empty::after {
        width: 100%;
    }
}

#payload_url_inputbox,
#service_name_list {
    input[type="text"] {
        width: 340px;
    }
}

.dropdown-title {
    margin-bottom: 3px;
}

@supports (-moz-appearance: none) {
    #settings_page select {
        appearance: none;
        background: hsl(0, 0%, 100%) url("../images/dropdown.png") right / 20px
            no-repeat;
        padding-right: 20px;
    }
}

.profile-field-choices {
    display: inline-block;

    hr {
        margin-top: 0;
        margin-bottom: 5px;
    }

    .choice-row {
        margin-top: 5px;

        input {
            width: 190px;
        }

        button {
            margin-left: 0 !important;
        }
    }

    > .choice-row:first-of-type {
        margin-top: 0;
    }
}

.custom_user_field .pill-container {
    padding: 2px 6px;
    min-height: 24px;
    max-width: 206px;
    background-color: hsl(0, 0%, 100%);

    &:focus-within {
        border-color: hsla(206, 80%, 62%, 0.8);
        outline: 0;
        outline: 1px dotted \9;

        box-shadow: inset 0 1px 1px hsla(0, 0%, 0%, 0.075),
            0 0 8px hsla(206, 80%, 62%, 0.6);
    }
}

#get_api_key_button {
    display: block;
}

#attachment-stats-holder {
    position: relative;
    margin-top: 13px;
    display: inline-block;
}

.hide-org-settings {
    display: none;
}

.collapse-settings-btn {
    margin: 10px 0 0 10px;
    color: hsl(200, 100%, 40%);

    &:hover {
        cursor: pointer;
        color: hsl(208, 56%, 38%);
    }
}

#toggle_collapse {
    margin-left: 2px;
    display: inline-block;
}

.admin_exports_table {
    margin-bottom: 20px;
}

@media (width < $lg_min) {
    .user-avatar-section,
    .realm-icon-section {
        display: block;
    }

    #settings_content .warning {
        display: none;
    }

    .subsection-failed-status p {
        margin: 5px 0 0;
    }
}

/* This value needs to match with the same in subscriptions.css, as
   we have some shared styles declared there */
@media (width < $md_min) {
    .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: block;

            &:not(.slide-left) .section {
                /* When viewing the settings list we hide the active section. */
                display: none;
            }
        }

        .content-wrapper {
            .settings-header {
                display: none;
            }

            #settings_content {
                height: 100%;
            }

            &.right {
                top: 47px;
            }
        }

        .sidebar-wrapper {
            width: 100%;
        }

        .sidebar {
            li.active {
                /* Don't highlight the active section in the settings list. */
                background: inherit;
                border-bottom: 1px solid hsl(0, 0%, 93%);
            }
        }
    }
}

@media (width < $sm_min) {
    #pw_strength {
        margin: auto;
    }

    #linkifier-settings .new-linkifier-form,
    #playground-settings .new-playground-form,
    #profile-field-settings .new-profile-field-form {
        width: 100%;
    }

    #linkifier-settings .new-linkifier-form .control-label,
    #playground-settings .new-playground-form .control-label,
    #profile-field-settings .new-profile-field-form .control-label {
        display: block;
        width: 120px;
        padding: 0;
        padding-top: 0;
        text-align: center;
        margin: auto;
        float: none;
    }

    #linkifier-settings .new-linkifier-form .controls,
    #playground-settings .new-playground-form .controls,
    #profile-field-settings .new-profile-field-form .controls {
        margin: auto;
        text-align: center;
    }

    #settings_page .save-button-controls {
        display: block;
        margin: 10px 0 0;
    }
}

@media (width < $ml_min) {
    #api_key_buttons,
    #download_zuliprc {
        flex-direction: column;
        margin-top: 5px;
    }

    #settings_page,
    #edit-user-form {
        .custom_user_field textarea {
            width: calc(100% - 25px);
        }
    }
}

@media only screen and (width < $lg_min) {
    /* 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);
        max-height: unset;
    }
}

#edit-linkifier-form {
    #edit-linkifier-pattern,
    #edit-linkifier-url-format-string {
        width: 400px;
    }

    label {
        margin-bottom: 4px;
    }

    #edit-linkifier-pattern-status,
    #edit-linkifier-format-status {
        margin-top: 10px;
    }
}

.settings_panel_list_header {
    position: relative;

    h3 {
        display: inline-block;
    }

    input.search {
        float: right;
        font-size: 1em;
        max-width: 160px;
        margin-top: 12px;
    }
}
