/*
 * Copyright 2024 Apollo Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
html, body {
    height: 100%;
    scroll-behavior: smooth;
}

body {
    min-width: 960px;
    color: #797979;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 13px;
    background: #f1f2f7;
    font-family: 'Open Sans', sans-serif;
}

body.modal-open {
    overflow: visible;
}

a {
    cursor: pointer;
}

p, td, span {
    word-wrap: break-word;
    word-break: break-all;
}

.modal {
    overflow-y: scroll
}

.no-radius {
    border-radius: 0;
}

.no-border {
    border: 0;
}

.no-margin {
    margin: 0;
}

.cursor-pointer {
    cursor: pointer;
}

.word-break {
    word-wrap: break-word;
    word-break: break-all;
}

.border {
    border: solid 1px #c3c3c3;
}

.padding-top-5 {
    padding-top: 5px;
}

.border-top {
    border-top: 1px solid #ddd;
}

.bg-info, .bg-primary, .bg-warning, .bg-danger, .bg-success {
    padding: 10px;
}

.active {
    background: #f5f5f5;
}

.label-default-light {
    background: #A4A4A4
}

.panel-default .panel-heading {
    color: #797979;
}

pre {
    white-space: pre-wrap; /* Since CSS 2.1 */
    white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
    white-space: -pre-wrap; /* Opera 4-6 */
    white-space: -o-pre-wrap; /* Opera 7 */
    word-wrap: break-word; /* Internet Explorer 5.5+ */
}

.pre {
    white-space: pre;
}

.hover:hover {
    background: #f5f5f5;
    cursor: pointer
}

.highlight {
    background: #ffa;
}

.hide-border-top {
    border-top: 0;
}

.logo {
    font-size: 25px;
}

.i-20 {
    height: 20px;
    width: 20px;
}

.i-25-20 {
    height: 20px;
    width: 25px;
}

.i-15 {
    height: 15px;
    width: 15px;
}

.badge {
    padding: 1px 4px;
}

.badge-grey {
    background: #777;
    color: #fff;
}

.badge-white {
    background: #ffffff;
    color: #6c6c6c;
}

.modal-dialog {
    width: 960px;
}

.apollo-container {
    min-height: 90%;
}

.navbar-default {
    background-color: #ffffff;
    border: none;
}

.footer {
    display: inline-block;
    width: 100%;
    height: 20px;
    line-height: 20px;
    position: relative;
}

.footer .footer-repo {
    position: relative;
    text-decoration: none;
    height: 100%;
}

.footer .footer-repo .footer-repo-img {
    position: absolute;
    top: 2px;
    height: 16px;
}

.footer .footer-repo .footer-repo-name {
    color: #3c3c3c;
    margin-left: 18px;
}

/*panel*/
.panel {
    border: 1px solid #ddd;
}

table th {
    text-align: center;
}

/*首页*/
.site-notice {
    padding: 5px 0;
    text-align: center;
    background-color: #208d4e;
}

.site-notice {
    color: #eee;
}

.site-notice a {
    color: #ffffff;
}

.site-notice a:hover {
    text-underline: none;
}

.site-notice .selected {
    color: #000000;
}

.site-header {
    position: relative;
    text-align: center;
    background-color: #27AE60;
    color: #fff;
    margin-bottom: 0;
}

.site-header .search {
    border: 2px solid #27AE60;
    -webkit-box-shadow: none;
    box-shadow: none;
    font-size: 16px;
    padding: 13px 30px;
    border-radius: 0;
    height: auto;
    text-align: center;
}

.site-header h1 {
    font-size: 56px;
    text-shadow: -5px 5px 0 rgba(0, 0, 0, 0.1);
}

.site-header span {
    font-size: 14px;
}

.list-group {
    margin-top: 20px;
}

.side-bar {
    position: absolute;
    width: 195px;
    top: 85px;
    left: 15px;
    margin-bottom: 25px;
    background: #f1f2f7;
    z-index: 2;
}

.position-absolute {
    position: absolute;
}

.position-fix {
    position: fixed;
}

.view-mode-1 {
    margin-left: 235px;
    padding-right: 15px;
}

.view-mode-2 {
    padding: 0 15px;
}

.side-bar-switch {
    padding: 10px 10px;
    margin-right: 30px;
}

.node-treeview {
    color: #797979;
}

.apps .apps-description {
    color: gray;
    font-size: 16px;
}

.app {
    padding-bottom: 75px;
    overflow: hidden;
}

.app td, th {
    display: table-cell;
    vertical-align: inherit;
}

.project-info {
    width: 100%;
}

.panel-heading {
    border-color: #eff2f7;
    font-size: 16px;
    font-weight: 300;
}

.panel-heading .header-namespace {
    min-width: 415px;
}

.panel-heading .header-buttons {
    min-width: 405px;
}

#treeview .list-group {
    margin: 0;
}

#treeview .list-group .list-group-item {
    border: 0;
    border-top: 1px solid #eff2f7;
}

.project-info th {
    text-align: right;
    padding: 4px 2px;
    width: 5em;
}

.project-info td {
    border-bottom: 1px dotted gray;
    padding: 4px 6px;
}

.project-info td span {
    margin-right: 5px;
}

#config-info {
    min-height: 500px;
}

#config-edit {
    border: 1px solid #ddd;
    border-radius: 3px;
}

#config-edit .panel-heading {
    border-bottom: 1px solid #ddd;
}

.tocify-header {
    font-size: 14px;
}

.tocify-subheader {
    font-size: 13px;
}

.config-item-container .panel {
    border-radius: 0;
}

.config-item-container .panel-heading b {
    font-size: 18px;
}

.config-item-container .form-control[disabled] {
    background: #ffffff;
    border: 0;
}

.config-item-container .second-panel-heading .ns_btn {
    width: 25px;
    height: 25px;
    border-top: solid 1px #ffffff;
}

.config-item-container .second-panel-heading .nav-tabs .node_active {
    border-bottom: 3px #1b6d85 solid;
}

.config-item-container .config-items {
    height: 500px;
    overflow: scroll;
}

.config-item-container .panel-heading button img {
    width: 12px;
    height: 12px;
}

.config-item-container .panel-heading a img {
    width: 12px;
    height: 12px;
}

.config-item-container .panel-heading li img {
    width: 12px;
    height: 12px;
}

.config-item-container .second-panel-heading {
    height: 45px;
}

.config-item-container .second-panel-heading a {
    height: 35px;
    color: #555;
    font-size: 13px;
    margin-bottom: 2px;
}

.config-item-container .second-panel-heading .text-fullscreen-icon {
    border: 0;
    margin: 0;
    padding: 0;
    vertical-align: top;
}

.namespace-panel {
    border-top: 0;
    border-bottom: 0;
}

.namespace-panel .namespace-name {
    font-size: 20px;
}

.namespace-panel .namespace-label {
    margin-left: 5px;
}

.namespace-panel .namespace-attribute-panel {
    margin-left: 0;
    color: #fff;
    border-top: 0;
    background: #f1f2f7;
}

.namespace-panel .namespace-attribute-public {
    margin-right:5px;
}

.namespace-panel .second-panel-heading .nav-tabs {
    border-bottom: 0;
}

.namespace-panel .namespace-view-table td img {
    cursor: pointer;
    width: 23px;
    height: 23px;
}

.namespace-panel .namespace-view-table table {
    table-layout: inherit;
}

.namespace-panel .namespace-view-table td {
    word-wrap: break-word;
}

.namespace-panel .namespace-view-table .glyphicon {
    cursor: pointer;
}

.namespace-panel .namespace-view-table .search-input {
    padding: 15px 0 15px 10px;
}

.namespace-panel .namespace-view-table .search-input input {
    width: 500px;
}

.namespace-panel .no-config-panel {
    padding: 15px 0;
}

.namespace-panel .history-view {
    padding: 10px 20px;

}

.namespace-text-editor-container:fullscreen,
.namespace-text-editor-container:-webkit-full-screen,
.namespace-text-editor-container:-moz-full-screen,
.namespace-text-editor-container:-ms-fullscreen {
    background: #fff;
    box-sizing: border-box;
    display: block;
    width: 100vw;
    height: 100vh;
    max-width: 100vw;
    max-height: 100vh;
    margin: 0;
    overflow: auto;
    padding: 12px;
}

.namespace-text-editor-container:fullscreen::backdrop {
    background: #fff;
}

.namespace-panel .instance-view .btn-primary .badge {
    color: #337ab7;
    background-color: #fff;
}

.namespace-panel .instance-view .btn-default .badge {
    background: #777;
    color: #fff;
}

.namespace-panel .rules-manage-view {
    padding: 45px 20px;
}

.line {
    width: 20px;
    border: 1px solid #ddd;
}

.editable-table > tbody > tr > td {
    padding: 4px
}

.editable-text {
    padding-left: 4px;
    padding-top: 4px;
    padding-bottom: 4px;
    display: inline-block;
}

.editable-table tbody > tr > td > .controls {
/ / width: 100 %
}

.editable-input {
    padding-left: 3px;
}

.editable-input.input-sm {
    height: 30px;
    font-size: 14px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.list-group-item .btn-title {
    color: gray;
    font-size: 14px;
    margin: 0;
}

.list-group-item .icon-project-manage {
    background: url(../img/manage.png) no-repeat;
}

.list-group-item .icon-accesskey-manage {
    background: url(../img/secret.png) no-repeat;
}

.list-group-item .icon-plus-orange {
    background: url(../img/add.png) no-repeat;
}

.list-group-item .icon-text {
    background-size: 20px;
    background-position: 5% 50%;
    padding: 5px 0 5px 50px;
}

/*搜索框*/
::-webkit-scrollbar {
  /*滚动条整体样式*/
  width: 8px; /*高宽分别对应横竖滚动条的尺寸*/
  height: 8px;
}

::-webkit-scrollbar-thumb {
  /*滚动条里面小方块*/
  border-radius: 10px;
  background-color: rgba(178, 178, 178, 0.8);
}

::-webkit-scrollbar-thumb:hover {
  background-color: rgba(178, 178, 178, 1);
}

.app-list {
    width: 350px;
    height: 200px;
    position: absolute;
    margin-left: 0;
    cursor: pointer;
    background: #ffffff;
    border: 1px solid #ddd;
    overflow-y: scroll;
    z-index: 1000;
}

.app-list .app-item {
    font-size: medium;
    padding: 5px 10px;

}

.app-list .app-item:hover {
    color: #ffffff;
    background: #C3C3C3;
}

.app-list .app-selected {
    color: #ffffff;
    background: #c3c3c3;
}

.item-container {
    border: solid 1px #f1f2f7;
    margin-top: 15px;
    padding: 20px 15px
}

.item-container .item-info {
    margin-left: 5px;
}

.change-type-mark {
    width: 5px;
    height: 5px;
}

.release-history .media-body {
    padding-left: 20px;
}

.release-history .panel-body .load-more {
    margin-top: 20px;
}

.release-history .media-body textarea {
    margin-top: 10px;
}

.release-history .release-history-container {
    padding: 0;
}

.release-history .release-history-list {
    max-height: 750px;
    padding: 0;
    border-right: solid 1px #eff2f7;
    overflow: scroll;
}

.release-history .release-history-list .media {
    position: relative;
    margin: 0;
    padding: 10px;
    border-bottom: solid 1px #eff2f7;
}

.release-history .release-history-list .release-operation {
    position: absolute;
    right: 0;
    top: 0;
    width: 5px;
    height: 100%;
}

.release-history .release-history-list .media .media-left {
    padding-top: 10px;
}

.release-history .release-history-list .media .media-body .release-title {
    padding: 0;
}

.release-history .release-history-list .emergency-publish {
    position: absolute;
    left: 0;
    top: 0;
}

.release-history .release-history-list .load-more {
    height: 45px;
    background: #f5f5f5;
}

.release-history .release-operation-normal {
    background: #316510;
}

.release-history .release-operation-rollback {
    background: #997f1c;
}

.release-history .release-operation-gray {
    background: #999999;
}

.release-history .operation-caption-container {
    position: relative;
}

.release-history .section-title {
    padding: 15px 10px 0 10px;
}

.release-history .operation-caption {
    position: absolute;
    top: 45px;
    width: 100px;
    height: 18px;
    color: #fff;
    font-size: 12px;
}

.release-history .panel-heading .back-btn {
    position: absolute;
    top: 45px;
    right: 10px;
}

.release-history .release-info {
    padding: 0;
    border: 0;
}

.release-history .panel-heading {
    padding: 15px;
}

.release-history .panel-heading button img {
    width: 12px;
    height: 12px;
}

.empty-container {
    padding: 15px;
}

.valdr-message {
    display: none;
}

.valdr-message.ng-dirty.ng-invalid.ng-touched {
    display: inline;
    color: #a94442;
}

.form-group .form-control.ng-invalid.ng-dirty.ng-touched {
    border-color: #a94442;
}

.app-not-found {
    padding-top: 50px;
    font-size: 18px;
}

/*index page*/
#app-list h5 {
    word-wrap: break-word;
    word-break: break-all;
}

#app-list {
    display: flex;
    background-color: #ffffff;
    width: 100vw;
}

#app-list .left-bar {
    width: 15%;
    min-width: 200px;
}

#app-list .main-table {
    padding-top: 15px;
    width: 85%;
    min-width: 500px;
}

#app-list .media-body {
    padding-top: 15px;
}

#app-list .media {
    background: #fff;
    display: table;
}

#app-list .media-left {
    min-width: 200px;
    max-width: 400px;
    color: #fff;
    display: table-cell;
    vertical-align: middle;
}

#app-list .more-img {
    width: 20px;
    height: 20px;
}

#app-list .app-panel {
    position: relative;
    height: 100px;
}

#app-list .operate-panel {
    position: absolute;
    top: 5px;
    right: 20px;
}

#app-list .display-table {
    padding: 15px;
    margin-left: 30px;
    margin-right: 30px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .09);
}

#app-list table {
    width: 100%;
}

#app-list tr {
}

#app-list th {
    border-bottom: 1px solid #E4E7ED;
    padding: 15px 8px 15px 8px;
    font-size: 16px;
    text-align: left;
    word-break: break-all;
}

#app-list td {
    border-bottom: 1px solid #E4E7ED;
    padding: 15px 8px 15px 8px;
    font-size: 14px;
    word-break: break-all;
}

.left-bar h5 {
    font-size: 15px;
    margin-left: 12px;
}

.left-bar .app-list-show {
    height: 60px;
    color: #337AB7;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}

.left-bar .app-list-choose {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .app-list-choose:hover {
    background-color: #F2F6FC;
}

.left-bar .favorite-list-show {
    height: 60px;
    color: #337AB7;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .favorite-list-choose {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .favorite-list-choose:hover {
    background-color: #F2F6FC;
}

.left-bar .public-namespace-list-show {
    height: 60px;
    color: #337AB7;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .public-namespace-list-choose {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .public-namespace-list-choose:hover {
    background-color: #F2F6FC
}

.left-bar .visited-list-show {
    height: 60px;
    color: #337AB7;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .visited-list-choose {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: left;
    padding-left: 25px;
    border-right: 1px solid #DCDFE6;
    cursor: pointer;
}
.left-bar .visited-list-choose:hover {
    background-color: #F2F6FC
}

.wapper {
    width: 600px;
    padding: 15px 0 30px 30px;
}

.select-wapper {
    width: 500px;
    height: 40px;
    position: relative;
}

.select-wapper>input {
    width: 100%;
    height: 100%;
    border: 1px solid #CCCCCC;
    font-size: 15px;
    padding: 0 10px 0 0;
    box-sizing: border-box;
    border-radius: 4px;
    padding: 5px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
.select-wapper>input:focus {
    border: 1px solid rgb(102,175,233);
    -webkit-box-shadow: inset 0 1px 1px rgba(102,175,233, .075);
    box-shadow: inset 0 1px 1px rgba(122,156,211, .075);
    outline: none;
}

.select-wapper:after {
    content: '';
    width: 0;
    height: 0;
    border-top: 8px solid #77705d;
    border-right: 5px solid transparent;
    border-left: 5px solid transparent;
    display: inline;
    position: absolute;
    right: 8px;
    top: 11px;
}

.select-wapper .select-content-panel {
    width: 100%;
    height: auto;
    max-height: 300px;
    position: absolute;
    top: 100%;
    left: 0;
    border: 1px solid rgb(122,156,211);
    margin-top: 0;
    padding: 0;
    overflow-y: auto;
    box-sizing: border-box;
    background-color: white;
}

.select-wapper .select-content-panel li {
    display: block;
    list-style: none;
    padding: 2px 10px;
    font-size: 14px;
    height: 30px;
    border: 0 !important;
}

.select-wapper .select-content-panel li:hover {
    background-color: rgb(30, 144, 255);
    color: white !important;
}

.select-wapper .select-content-panel li:active {
    background-color: rgb(30, 144, 255);
    color: white !important;
}
.select-wapper .item-bg {
    background-color: rgb(30, 144, 255);
    color: white !important;
}
.select-wapper .hidden-cls {
    display: none;
}

.create-app-list .media-left {
    background: #a9d96c;
}
.create-app-list .create-btn-panel {
    padding-right: 35px;
    padding-bottom: 15px;
}

.create-app-list .create-btn img {
    width: 16px;
    height: 16px;
}

.favorites-app-list .media-left {
    background: #57c8f2;
}

.favorites-app-list .no-favorites {
    padding-top: 75px;

}

.public-namespace-list .media-left {
    background: #65c294;
}

.public-namespace-list .no-public {
    padding-bottom: 15px;
}

.visit-app-list .media-left {
    background: #41cac0;
}

.homepage-loading-more-panel {
    margin-top: 20px;
    padding-right: 30px;
    padding-left: 30px;
}

#rulesModal .rules-ip-selector {
    width: 500px;
    height: 50px;
}

#rulesModal textarea {
    width: 500px;
    margin-bottom: 5px;
}

#rulesModal .rule-edit-panel {
    padding: 15px 0;
}

#rulesModal .add-rule {
    margin-left: 15px;
}

#rulesModal .select2-container .select2-search__field:not([placeholder='']) {
    width: auto !important;
}

.search-onblur {
    width: 165px;
    background: #f5f5f5;
}

.search-focus {
    width: 165px;
    background: #fff;
}

.project-setting .panel-body {
    padding-top: 35px;
}

.project-setting .panel-body .context {
    padding-left: 30px;
    padding-right: 30px;
}

.app-search-list .select2-container, .app-search-list .select2-container .select2-selection {
    height: 34px;
}

.app-search-list .select2-container .select2-selection .select2-selection__rendered {
    line-height: 34px;
    font-size: 14px;
}

#app-search-list {
    width: 375px;
}

.user-token-operation-list .checkbox-inline,
.user-token-env-list .checkbox-inline {
    margin-left: 0;
    margin-right: 10px;
}

.user-token-operation-list .checkbox-inline + .checkbox-inline,
.user-token-env-list .checkbox-inline + .checkbox-inline {
    margin-left: 0;
}

.user-token-inline-help {
    display: inline-block;
    margin: 0 0 0 10px;
    padding-top: 7px;
    color: #999;
    vertical-align: top;
}

.user-token-transfer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.user-token-transfer-column {
    width: 265px;
}

.user-token-transfer-title {
    margin-bottom: 5px;
    color: #666;
    font-weight: 600;
}

.user-token-transfer-search {
    margin-bottom: 6px;
}

.user-token-transfer-select {
    height: 130px !important;
}

.user-token-transfer-selected-select {
    height: 170px !important;
}

.user-token-transfer-actions {
    display: flex;
    flex-direction: column;
    margin: 62px 10px 0;
}

.user-token-transfer-actions .btn {
    width: 46px;
    margin-bottom: 6px;
}

.user-token-transfer-help {
    flex-basis: 100%;
    margin: 5px 0 0;
    color: #999;
}

.user-token-detail-list dd {
    min-height: 20px;
    word-break: break-all;
}

.user-token-detail-value {
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    white-space: pre-wrap;
    word-break: break-word;
}

.user-token-admin-filter .form-group {
    margin-right: 12px;
    margin-bottom: 10px;
}

.user-token-admin-filter label {
    margin-right: 6px;
}

.user-token-admin-table td {
    vertical-align: middle !important;
}

.user-token-admin-actions {
    min-width: 150px;
    white-space: nowrap;
}

/*backTop component style*/
.back-top {
    position: fixed;
    height: 40px;
    width: 40px;
    border-radius: 4px;
    color: #ffffff;
    z-index: 5;
    cursor: pointer;
    right: 40px;
    bottom: 40px;
    text-align: center;
    line-height: 40px;
    font-size: 16px;
    background: #0c4c7f;
    opacity: .2;
    user-select: none;
}

.back-top:hover {
    opacity: .4;
}

.back-top:active {
    opacity: .6;
}

.navbar-nav .nav-switch-lang {
    width: 12px;
    height: 12px;
    margin-top: -4px;
    margin-right: -5px;
}

.navbar-header .logo {
    height: 35px;
    margin-top: -4px
}


.margin-top10 { margin-top:10px; }

#consumer-list th {
    border-bottom: 1px solid #E4E7ED;
    padding: 15px 8px 15px 8px;
    font-size: 16px;
    text-align: left;
    word-break: break-all;
}

#consumer-list td {
    border-bottom: 1px solid #E4E7ED;
    padding: 15px 8px 15px 8px;
    font-size: 14px;
    word-break: break-all;
}

#consumer-list table {
    margin-left: 20px;
}

#consumer-list .more-img {
    width: 20px;
    height: 20px;
}

#consumer-list .create-btn img {
    width: 16px;
    height: 16px;
}

.left-overflow {
    overflow-x: auto;
    text-align: left;
}

.table-fixed{
    table-layout: fixed;
}

.block {
    display: block;
}

.cluster-info-panel {
    margin: 20px 0px;
}
