*{padding:0;margin:0}
.floatRight{float: right;}
.clear{clear: both;}
.visitorBody{
    background-color: #4c4c4c;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    font-family: inherit;
    font-weight: 500;
    line-height: 1.2;
    color: inherit;
}
.el-menu.el-menu--horizontal{
    border-bottom: none;
    padding-bottom: 4px;
}
.el-menu--horizontal>.el-menu-item.is-active{
    border-bottom: 3px solid #409EFF;
}
#app {
    width: 100%;
    height: 100%;
}
.chatBg .el-tabs__header{margin: 0;}


.visitorFaceBtn{
    float: left;
    margin-left: 5px;
}

.visitorFaceBox{
    position: absolute;
    bottom: 85px;
}
.visitorIconBtns{
    margin-right: 8px;
    transform: scale(0.8);
}
.visitorIconBtns:hover{
    color:#484848;
}

.kefuFaceBox{
    position: absolute;
    bottom: 0px;
    z-index: 999;
}

.faceBox{
    width: 100%;
    background: #fff;
    z-index: 99999999;
    padding: 2px;
}
.faceBoxList{
    list-style: none;
    padding: 0;
    margin: 0;
}
.faceBoxList li{
    cursor: pointer;
    float: left;
    border: 1px solid #e8e8e8;
    width: 28px;
    overflow: hidden;
    margin: -1px 0 0 -1px;
    padding: 4px 2px;
    text-align: center;
}

@-webkit-keyframes bounce-up {
    25% {-webkit-transform: translateY(10px);}
    50%, 100% {-webkit-transform: translateY(0);}
    75% {-webkit-transform: translateY(-10px);}
}

@keyframes bounce-up {
    25% {transform: translateY(10px);}
    50%, 100% {transform: translateY(0);}
    75% {transform: translateY(-10px);}
}
.animate-bounce-up{ -webkit-animation: bounce-up 1.4s linear infinite;animation: bounce-up 1.4s linear infinite;}
.mainLogo{
    font-size: 20px;
    font-weight: bold;
    color: #fff;
}
.mainVersion{
    margin-left: 5px;
    font-size: 12px;
}

.el-container{
    height: 100%;
}
.el-aside {
    height: 100%;
    background: #fff;
}
.textDark {color: #343a40;}
.bgInfo {background-color: #17a2b8}
.bgSuccess {background-color: #28a745}
.bgDanger {background-color: #dc3545}
.bgInfo {background-color: #17a2b8}
.smallBox {
    border-radius: .25rem;
    box-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
    display: block;
    margin-bottom: 20px;
    position: relative;
    padding: 10px;
    color: #fff;
}
.settingMain h2{
    margin-bottom: 20px;
}
.settingMain h3{
    font-size: 24px;
    margin-bottom: 10px;
}
.bigPic{
    background: #ccc;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    display: none;
    text-align: center;
}
/*客服聊天主板*/
.chatBg{background: #fff;border: solid 1px #e6e6e6;overflow: hidden;}
.chatLeft{height:100%;overflow:auto;}
.chatLeft .el-tabs__nav,.chatRight .el-tabs__nav {
    margin-left: 20px;
}
.chatRight{
    height: 100%;
    background: #fff;
    overflow-x: hidden;
}
.onlineUsers {
    padding: 10px 4px;
    height: 40px;
    font-size: 14px;
    border-bottom: solid 1px #f1f1f1;
    border-left: 4px solid #fff;
    display: flex;
    cursor: pointer;
}
.onlineUsers a{
    color: #333;
}
.onlineUsers:hover, .onlineUsers.cur {
    background-color: rgb(238 247 255);
    border-left: 4px solid #4299e2;
}
.imgGray {-webkit-filter: grayscale(100%);-ms-filter: grayscale(100%);filter: grayscale(100%);filter: gray;color:#888;}
.hasLastMsg{line-height: normal;}
.lastNewMsg{font-size: 12px;color: #7f7f7f;margin-top: 4px;overflow: hidden;height: 16px;}
/*客服页*/
.chatKfPageApp{
    max-width: 800px;
    margin:0 auto;
}
.chatCenter {
    background: #fff;
    max-width: 840px;
    margin: 0 auto;
    box-shadow: 2px 2px 6px rgba(0,0,0,.3);
    border-top: none;
    overflow: hidden;
}
.chatContext{
    width: 100%;
    text-align: left;
    position: relative;
    background: rgb(245,245,245);
}
.chatBox{
    /*overflow-y: auto;*/
    overflow-x: hidden;
    background: rgb(245,245,245);
    /*margin-bottom: 80px;*/
}
.chatVisitorPage{
    height: calc(100% - 86px);
    overflow-y: auto;
}
.chatVisitorPage .chatBox{
    padding: 5px 4px;
}
.chatBox .el-col{margin:10px 0;}
.chatUser{
    font-size: 12px;
    white-space: nowrap;
    color: #999;
    text-align: left;
    margin: -5px 0px 3px 0px;
}
.chatMainPage{
    margin-top: 1px;
}
.chatContent {
    background-color: rgb(255,255,255);
    color: #000;
    border: 1px solid rgb(237,237,237);
    min-height: 20px;
    padding: 8px 15px;
    word-break: break-all;
    position: relative;
    border-radius: 5px;
    display: inline-block;
    line-height: 21px;
    font-size: 14px;
}
.chatContent2 {
    border-radius: 8px 8px 8px 0px;
    padding: 10px 15px;
}
.chatBoxMe{
    margin-top: 10px;
}
.chatBoxMe .chatContent2 {
    border-radius: 8px 8px 0px 8px;
    background-color: #cde0ff;
    color: #000;
}
a{color: #07a9fe;text-decoration: none;}


.chatBoxMe .chatContent{float: right;}
.chatBoxMe .chatContent:after{border-left-color: rgba(152,225,101,1);border-right:none;left:auto;right: -5px;}
.chatBoxMe .chatContent:before{border-left-color: rgb(152,225,101);border-right:none;right: -5px;left: auto;}
.chatBoxMe .el-col-3{float: right;text-align: right;}
.chatBoxMe .chatUser{text-align: right}
.btnArea{width: 10%;float: right;}


.chatTitle{height: 30px;line-height: 30px;color: #1989fa}
.chatBoxSend{
    position: relative;
    padding-top: 5px;
    background: #fff;
    width: 100%;
    height: 80px;
    z-index: 99;
    border-top: 1px solid #e4e4e4;
}
.chatBoxSendBtn{float: right;margin: 12px 4px 0 0;}
.footContact{text-align: center;
    position: absolute;
    bottom: 2px;
    left: 0;
    right: 0;
}
.footContact a{font-size: 12px;color: #999;text-decoration: none;}
.chatTime{text-align: center;color: #bbb;margin: 12px 0;font-size: 12px;}
.chatTime span{display: inline-block;padding: 2px 5px;background: rgb(218,218,218);color: #fff;}
.chatTimeHide{display: none;}
.visitorInfo .el-menu-item{
    font-size: 12px;
}
.chatRightTitle{
    color: #303133;
    height: 40px;
    line-height: 40px;
    padding:0 10px;
    font-size: 14px;
    border-bottom:1px solid #E4E7ED;
}
.chatRightTitle a{
    float: right;
    text-decoration: none;
    color: #519eff;
}
.replyBox{
    font-size: 12px;
    min-height: 300px;
    background: #fff;
}
.replyItem:hover{
    background-color: #f0f9eb;
    color: #67C23A;
}
.replyContent{
    padding: 0 10px;
}
.replySearch{
    margin: 5px 7px;
    width: 96% !important;
}
.iconBtnsBox{
    display: flex;
    align-items: center;
    color: #7e7e7e;
    height: 35px;
}
.iconBtnsBox .iconBtn{
    margin-right: 10px;
    cursor: pointer;
}
.kefuMainBg{background: #f5f5f5;border-right: solid 1px #e6e6e6;boder-top:none;}
.kefuFuncBtns{background:#fff;margin: 2px 0px;color: #7f7f7f;border-bottom: 1px solid #e6e6e6;font-size: 12px;padding: 5px 0px;}

.kefuFuncBox{
    position: absolute;
    height: 135px;
    bottom: 0px;
    width: 100%;
    background: #fff;
    border-top: 1px solid #e5e5e5;
}
.kefuFuncBox .faceBox{
    position: absolute;
    bottom:100px;
}
.kefuFolderBtn{vertical-align: middle;}
.visitorReply{
    font-size: 14px;
    line-height: 24px;
}
.visitorReplyTitle{

}
.visitorReplyContent{
    color:#007aff;
    cursor: pointer;
}
.kefuSendBtn{
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 2;
}
.clear{clear:both;}


.chatEntTitle {
    display: none;
    width: 100%;
    z-index: 9;
    margin: 0 auto;
    height: 56px;
    overflow: hidden;
    font-size: 16px;
    color: #fff;
    overflow: hidden;
    background-color: rgb(11 113 236);
    background-image: url(../images/visitor_title_bg.png);
    background-size: auto 72px;
    background-position: center 0;
    align-items: center;
}
.chatEntTitle span {
    margin-right: 10px;
}
.chatEntTitle .el-badge__content.is-fixed.is-dot {
    right: 17px;
    bottom: -5px;
    top: unset;
}
.chatEntBox{
    height: 100%;
    position: relative;
}
.chatArticle{
    display: none;
}
.visitorIconBox{
    display: flex;
    align-items: center;
    color:#9c9c9c;
}
.visitorIconBox .iconBtn{
    margin-right: 10px;
    cursor: pointer;
}
.productCard{
    cursor: pointer;
    padding: 5px;
    border-radius: 2px;
    width: auto;
    max-width: 730px;
    display: flex;
    border-radius: 5px;
}
.productCard img{
    width: 100px;
    height: 100px;
    margin-right: 15px;
}
.productCard .productCardPrice{
    color: #ff7736;
    font-weight: bold;
    font-size: 16px;
    margin-top: 10px;
}
.productCard .productCardTitle{
    color: #333;
}
@media screen and (min-width: 900px) {
    .chatCenter {
        max-height: 650px;
        box-shadow: 0 2px 8px rgba(0,0,0,.15);
        border-radius: 8px;
    }
    .chatVisitorPage {
        height: calc(100% - 156px);
    }
    .chatEntTitle{display: flex;}
    .chatEntTitleLogo {
        margin-left: 15px;
    }
    .visitorBody {
        display: flex;
        -ms-flex-pack: center;
        justify-content: center;
        -ms-flex-align: center;
        align-items: center;
    }
    .chatEntBox {
        width: calc(100% - 265px);
        float: left;
        border-right: 1px solid #e6e6e6;
    }
    .chatArticle {
        display: block;
        width: 260px;
        float: right;
        overflow-y: auto;
    }
    .hotQuestionTitle {
        padding: 10px 10px 10px 10px;
        border-bottom: 1px solid rgba(0,0,0,.09);
        font-size: 16px;
        display: flex;
    }
    .hotQuestionTitle .fire {
        width: 20px;
        margin-right: 10px;
        color: rgb(250, 84, 28);
    }
}
.visitorEditorArea{
}
.visitorEditorArea  textarea {
    padding: 7px 0 7px 8px;
    font-size:16px;
    line-height: 21px;
    border: none;
}
.visitorEditorBtn{
    position: absolute;
    right: 10px;
    bottom: 2px;
}
.mainLeftMenu {
    width: 70px;
    float: left;
    height: 100%;
    text-align: center;
    background-color: #0a2f5a;
    position: relative;
}
.menuLeftItem {
    height: 55px;
    text-align: center;
    color: #fff;
    cursor: pointer;
    padding-top: 12px;
    width: 100%;
}
.menuLeftItem i, .menuLeftItem .el-badge {
    display: block;
    margin-bottom: 2px;
    font-size: 20px;
}
.menuLeftItem span {
    font-size: 12px;
}
.menuLeftItemLogout {
    position: absolute;
    bottom: 0px;
}
.mainRight {
    width: calc(100% - 70px);
    height: 100%;
    float: left;
}
.mainIframe {
    width: 100%;
    height: 100%;
}
.menuLeftItem:active, .menuLeftItem.active {
    background: #2b5a96;
}
.chatNotice {
    text-align: center;
    margin: 12px 0px;
}
.chatNoticeContent {
    display: inline-block;
    word-break: break-all;
    color: rgba(0,0,0,.45);
    margin: 0 24px;
    max-width: calc(100% - 48px);
    background-color: #fff;
    border-radius: 16px;
    font-size: 12px;
    padding: 4px 16px;
}
.chatRow {
    display: flex;
}
.chatRowAvator {
    margin-right: 10px;
    flex-shrink: 0;
}
.chatBoxMe .chatRow {
    float: right;
}
.chatBoxMe .chatRowAvator {
    margin-left: 10px;
}
.allNotice{
    font-size: 12px;
    margin: 10px 0px;
    line-height: 23px;
    color: #666;
}
.chatArea .el-textarea__inner{
    border: none;
}
.tongji{
    display: flex;
}
.tongji .tongjiItem{
    background: #fff;
    margin: 10px;
    border-radius: 5px;
    width: 100%;
}
.tongji .tongjiHeader{
    font-size: 14px;
    font-weight: bold;
    padding: 10px 15px;
    border-bottom: 1px solid #e8eaec;
    color:#17233d;
}
.tongji .tongjiBody{
    font-size: 30px;
    margin: 0px 10px;
    padding: 10px 0px;
    border-bottom: 1px solid #e8eaec;
    color: #515a6e;
}
.tongji .tongjiFooter{
    font-size: 14px;
    margin: 10px 10px;
    color: #515a6e;
}
.tongji .tongjiFooter span{
    color: red;
    padding: 0 3px;
}
    /* 定义滚动条的宽度、高度和背景色 */
::-webkit-scrollbar {
    width: 8px;
    height: 10px;
    background-color: #f5f5f5;
}

/* 定义滚动条滑块的样式 */
::-webkit-scrollbar-thumb {
    background-color: #c5c5c5;
}



/* 定义滚动条滑块在 hover 状态下的样式 */
::-webkit-scrollbar-thumb:hover {
    background-color: #999;
}

/* ===== 移动端弹窗宽度适配（<768px）===== */
@media (max-width: 768px) {
    .el-dialog {
        width: 92% !important;
        margin: 10vh auto 0 !important;
    }
    .el-message-box {
        width: 90% !important;
    }
    .el-dialog .el-form-item__label {
        font-size: 13px;
    }
}

/* ============================================================
   通云 UI 2.0 · Design Tokens 与全局基础（品牌渐变现代风）
   ============================================================ */
:root {
    /* 品牌 */
    --brand-400: #5B8CFF;
    --brand-500: #3370FF;
    --brand-600: #2557E7;
    --brand-gradient: linear-gradient(135deg, #3370FF 0%, #5B8CFF 100%);
    /* 中性色 */
    --bg-page: #F5F7FA;
    --bg-card: #FFFFFF;
    --border: #EBEEF5;
    --text-1: #303133;
    --text-2: #606266;
    --text-3: #909399;
    /* 语义 */
    --success: #67C23A;
    --warning: #E6A23C;
    --danger: #F56C6C;
    /* 组件 */
    --radius-s: 8px;
    --radius-m: 12px;
    --radius-l: 16px;
    --shadow-card: 0 1px 2px rgba(0,0,0,.03), 0 4px 12px rgba(0,0,0,.06);
    --shadow-pop: 0 8px 24px rgba(0,0,0,.14);
    /* 气泡 */
    --bubble-me: #3370FF;
}

/* ---- 全局基础 ---- */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial,
                 "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    font-size: 14px;
    color: var(--text-1);
    -webkit-font-smoothing: antialiased;
}
a { color: var(--brand-500); }

/* ---- ElementUI 主色统一为品牌色 ---- */
.el-button { border-radius: var(--radius-s); }
.el-button--primary {
    background: var(--brand-500);
    border-color: var(--brand-500);
}
.el-button--primary:hover, .el-button--primary:focus {
    background: var(--brand-600);
    border-color: var(--brand-600);
}
.el-button--primary.is-plain {
    color: var(--brand-500);
    background: #F0F5FF;
    border-color: #B8CCFF;
}
.el-button--primary.is-plain:hover,
.el-button--primary.is-plain:focus {
    background: var(--brand-500);
    border-color: var(--brand-500);
    color: #fff;
}
.el-input__inner:focus, .el-textarea__inner:focus {
    border-color: var(--brand-500) !important;
}
.el-tabs__item.is-active { color: var(--brand-500); }
.el-tabs__active-bar { background-color: var(--brand-500); }
.el-dialog { border-radius: var(--radius-m); overflow: hidden; }
.el-message-box { border-radius: var(--radius-m); }
.el-pagination.is-background .el-pager li.active {
    background-color: var(--brand-500);
}

/* ============================================================
   消息气泡（工作台 + 客户窗口共用）
   ============================================================ */
.chatContent {
    background: var(--bg-card);
    color: var(--text-1);
    border: 1px solid var(--border);
    border-radius: 4px var(--radius-m) var(--radius-m) var(--radius-m);
    padding: 9px 14px;
    box-shadow: 0 1px 1px rgba(0,0,0,.02);
    max-width: 100%;
}
/* 去掉旧版三角箭头 */
.chatContent:after, .chatContent:before,
.chatBoxMe .chatContent:after, .chatBoxMe .chatContent:before { display: none; }
.chatContent2 { border-radius: 4px var(--radius-m) var(--radius-m) var(--radius-m); }
.chatBoxMe .chatContent2 {
    background: var(--bubble-me);
    color: #fff;
    border-color: transparent;
    border-radius: var(--radius-m) 4px var(--radius-m) var(--radius-m);
}
.chatContent a { color: var(--brand-500); }
.chatBoxMe .chatContent a { color: #fff; text-decoration: underline; }
.chatContent img { max-width: 100%; border-radius: var(--radius-s); display: block; }
.chatContent .productCard { background: #fff; }

/* 时间戳：居中小胶囊 */
.chatTime {
    text-align: center;
    color: #A8ABB2;
    margin: 14px 0 8px;
    font-size: 11px;
}
.chatTime span {
    display: inline-block;
    padding: 2px 10px;
    background: rgba(144,147,153,.16);
    color: #7A8087;
    border-radius: 20px;
}

/* ============================================================
   客服工作台 · 面板卡片化 / 侧栏 / 列表
   ============================================================ */
.chatBg {
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-m);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}
.onlineUsers {
    border-bottom: none;
    border-left: none;
    border-radius: 10px;
    margin: 2px 8px;
    padding: 8px 10px;
    height: auto;
    min-height: 52px;
    transition: background .15s;
}
.onlineUsers:hover, .onlineUsers.cur {
    background: #F0F5FF;
    border-left: none;
}
.onlineUsers.cur { box-shadow: inset 3px 0 0 var(--brand-500); }
.lastNewMsg { color: var(--text-3); }

/* 访客列表：未读消息数字角标 */
.avatarWrap { position: relative; display: inline-block; line-height: 1; }
.unreadBadge {
    position: absolute;
    top: -5px;
    right: -7px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    box-sizing: border-box;
    border-radius: 9px;
    background: #F56C6C;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    box-shadow: 0 0 0 2px #fff;
    z-index: 2;
    pointer-events: none;
}

/* 图标按钮：hover 反馈 */
.iconBtn { border-radius: var(--radius-s); transition: all .15s; }
.iconBtnsBox .iconBtn,
.visitorIconBox .iconBtn { padding: 5px; color: var(--text-2); }
.iconBtn:hover {
    color: var(--brand-500) !important;
    background: #F0F5FF;
}

/* 右栏访客信息 / 快捷回复 */
.visitorInfo .el-menu-item {
    border-radius: var(--radius-s);
    margin: 2px 6px;
    height: 40px;
    line-height: 40px;
}
.visitorInfo .el-menu-item:hover { background: var(--bg-page) !important; }
.chatRightTitle {
    color: var(--text-2);
    height: 42px;
    line-height: 42px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 600;
    border-bottom: 1px solid var(--border);
    background: #FAFBFC;
}
.chatRightTitle a { color: var(--brand-500); font-weight: 400; }
.visitorReply { border-radius: var(--radius-s); }
.visitorReplyContent { color: var(--brand-500); }

/* 表情面板 */
.faceBox {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-m);
    box-shadow: var(--shadow-pop);
    padding: 8px;
    width: 312px;
    max-width: calc(100vw - 24px);
}
.faceBoxList li {
    border: none;
    border-radius: var(--radius-s);
    margin: 2px;
    width: 32px;
    transition: background .15s;
}
.faceBoxList li:hover { background: var(--bg-page); }

/* ============================================================
   主框架侧栏：深空蓝渐变 + 主色指示器
   ============================================================ */
.mainLeftMenu {
    background: linear-gradient(180deg, #16274D 0%, #0C1730 100%);
}
.menuLeftItem { position: relative; transition: background .15s; }
.menuLeftItem:hover { background: rgba(255,255,255,.07); }
.menuLeftItem:active, .menuLeftItem.active {
    background: rgba(51,112,255,.22);
}
.menuLeftItem.active::after {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--brand-400);
}

/* ============================================================
   客户聊天窗口（chat_page）· 全新布局
   ============================================================ */
/* 独立页背景：品牌柔光渐变 */
.visitorBody {
    background: linear-gradient(160deg, #DCE9FF 0%, #F5F7FA 45%, #E9E4FF 100%);
    min-height: 100vh;
}
/* 整体：弹性列布局 */
.chatCenter {
    display: flex;
    flex-direction: column;
    height: 100vh;
    max-width: 840px;
    margin: 0 auto;
    background: var(--bg-card);
    box-shadow: var(--shadow-pop);
    border-top: none;
    overflow: hidden;
}
/* 头部：品牌渐变条 */
.chatEntTitle {
    display: flex !important;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    height: 64px;
    flex-shrink: 0;
    padding: 0 16px;
    background: var(--brand-gradient);
    color: #fff;
    box-shadow: 0 2px 8px rgba(51,112,255,.28);
    z-index: 10;
}
.chatEntTitleLogo { margin-left: 0; border: 2px solid rgba(255,255,255,.5); }
.chatEntTitle .el-badge__content.is-fixed.is-dot { right: 17px; bottom: -2px; }
.chatEntTitleMeta { margin-left: 12px; text-align: left; }
.chatEntTitleName { font-size: 16px; font-weight: 600; line-height: 22px; }
.chatEntTitleSub { font-size: 12px; opacity: .85; line-height: 16px; margin-top: 2px; }

/* 公告：头部下方信息条 */
.chatArticle {
    display: flex;
    align-items: flex-start;
    order: 1;
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
    float: none;
    overflow: visible;
    background: #ECF3FF;
    border-bottom: 1px solid #DCE7FB;
    padding: 8px 14px;
    font-size: 13px;
    color: var(--text-2);
    line-height: 20px;
}
.chatArticle .hotQuestionTitle { display: none; }
.chatArticle .el-icon-notification {
    color: var(--brand-500);
    font-size: 16px;
    margin-right: 8px;
    margin-top: 2px;
    flex-shrink: 0;
}
.chatArticle .allNotice { flex: 1; word-break: break-all; }
.chatNoticeClose {
    color: var(--text-3);
    cursor: pointer;
    margin-left: 10px;
    margin-top: 2px;
    flex-shrink: 0;
}
.chatNoticeClose:hover { color: var(--text-1); }

/* 聊天主体：弹性伸缩 */
.chatEntBox {
    order: 2;
    width: 100% !important;
    float: none !important;
    border-right: none;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    position: relative;
}
.chatContext.chatVisitorPage {
    flex: 1;
    height: auto !important;
    min-height: 0;
    overflow-y: auto;
    background: var(--bg-page);
}
.chatVisitorPage .chatBox { padding: 8px 14px; }
.chatBox .el-col { margin: 12px 0; }

/* 输入区 */
.chatBoxSend {
    position: relative;
    height: auto;
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px calc(10px + env(safe-area-inset-bottom));
    background: var(--bg-card);
    border-top: 1px solid var(--border);
    z-index: 5;
}
.visitorIconBox { display: flex; align-items: center; padding: 2px 2px 4px; }
.visitorIconBox .iconBtn { font-size: 22px; }
.visitorEditorArea textarea {
    border: none;
    padding: 6px 96px 6px 6px;
    font-size: 15px;
    line-height: 22px;
}
.visitorEditorArea .el-input__count { right: 96px; }
.visitorEditorBtn {
    position: absolute;
    right: 10px;
    bottom: 12px;
    min-width: 76px;
    border-radius: var(--radius-s);
    box-shadow: 0 2px 6px rgba(51,112,255,.35);
}
/* 表情面板浮层 */
.visitorFaceBox {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 8px;
}

/* 独立页桌面端：居中卡片 */
@media screen and (min-width: 900px) {
    .visitorBody { padding: 24px; }
    .chatCenter {
        height: calc(100vh - 48px);
        max-height: 760px;
        border-radius: var(--radius-l);
    }
}

/* 客户窗口移动端 */
@media screen and (max-width: 640px) {
    .chatCenter { max-width: 100%; height: 100vh; }
    .visitorBody { padding: 0; }
    .chatEntTitle { height: 56px; padding: 0 12px; }
    .chatVisitorPage .chatContent { font-size: 15px; max-width: 80%; }
    .chatVisitorPage .chatMsgContent { max-width: 80%; }
    .visitorEditorBtn { min-width: 64px; }
    .visitorIconBox .iconBtn { padding: 8px; }
}


/* ===== v2.0.1 修复：输入行弹性布局（发送按钮完整可见）===== */
.visitorInputRow{display: flex;align-items: flex-end;gap: 10px;}
.visitorInputRow .visitorEditorArea{flex: 1;min-width: 0;}
.visitorEditorBtn{
    position: static;
    right: auto;
    bottom: auto;
    flex-shrink: 0;
    margin-bottom: 2px;
}
.visitorEditorArea textarea{padding: 6px 8px !important;}
.visitorEditorArea .el-input__count{right: 8px;}

/* ===== v2.0.4 移动端客户窗口：头部单行 + 微信式输入栏 ===== */
.wxInputBar{display: none;}
.wxPlusPanel{display: none;}
@media screen and (max-width: 640px) {
    /* 头部：单行紧凑，去副标题 */
    .chatEntTitle{height: 48px;padding: 0 12px;}
    .chatEntTitleSub{display: none !important;}
    .chatEntTitleLogo{width: 32px !important;height: 32px !important;}
    .chatEntTitleName{font-size: 16px;line-height: 48px;}
    .chatEntTitleMeta{margin-left: 10px;}
    .chatEntTitle .el-badge__content.is-fixed.is-dot{right: 22px;bottom: 2px;}

    /* 隐藏PC输入行与图标行 */
    .visitorIconBox{display: none !important;}
    .visitorInputRow{display: none !important;}
    .chatBoxSend{padding: 6px 8px calc(8px + env(safe-area-inset-bottom));}

    /* 微信式单行输入栏 */
    .wxInputBar{
        display: flex;
        align-items: flex-end;
        gap: 8px;
    }
    .wxInputField{
        flex: 1;
        min-width: 0;
        background: #fff;
        border: 1px solid #E3E5E8;
        border-radius: 8px;
        padding: 0 10px;
    }
    .wxTextarea{
        width: 100%;
        display: block;
        border: none;
        outline: none;
        resize: none;
        background: transparent;
        font-family: inherit;
        font-size: 16px;
        line-height: 24px;
        padding: 7px 0;
        max-height: 80px;
    }
    .wxRightBtn{flex-shrink: 0;display: flex;align-items: center;gap: 6px;}
    .wxPlus{
        width: 36px;height: 36px;
        border: none;background: transparent;
        font-size: 30px;color: #333;
        padding: 0;line-height: 36px;cursor: pointer;
    }
    .wxSend{
        height: 34px;
        padding: 0 14px;
        border: none;
        border-radius: 6px;
        background: #07C160;
        color: #fff;
        font-size: 14px;
        cursor: pointer;
    }

    /* “+”号扩展面板 */
    .wxPlusPanel{
        display: flex;
        position: absolute;
        left: 0;right: 0;
        bottom: 100%;
        background: #fff;
        border-top: 1px solid #EBEEF5;
        padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
        gap: 24px;
        z-index: 6;
    }
    .wxPlusItem{
        width: 64px;
        text-align: center;
        cursor: pointer;
    }
    .wxPlusItem i{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 60px;
        height: 60px;
        border-radius: 12px;
        background: #F3F5F9;
        font-size: 26px;
        color: #333;
        margin: 0 auto 6px;
    }
    .wxPlusItem:active i{background: #E8EAEE;}
    .wxPlusItem span{font-size: 12px;color: #606266;}
}

/* ===== v2.0.6 接入过渡层 ===== */
.connectOverlay{
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #F7F9FF 0%, #FFFFFF 65%);
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
}
.connectInner{text-align: center;padding: 0 20px;}
.connectAvatar{
    width: 76px;
    height: 76px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #EAF1FF;
    animation: connectBreath 1.6s ease-in-out infinite;
}
@keyframes connectBreath{
    0%,100%{transform: scale(1);box-shadow: 0 0 0 0 rgba(51,112,255,.28);}
    50%{transform: scale(1.06);box-shadow: 0 0 0 16px rgba(51,112,255,0);}
}
.connectText{font-size: 14px;color: #606266;line-height: 20px;}
.connectDots{margin-top: 12px;}
.connectDots span{
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 3px;
    border-radius: 50%;
    background: #3370FF;
    animation: connectDot 1.2s infinite;
}
.connectDots span:nth-child(2){animation-delay: .2s;}
.connectDots span:nth-child(3){animation-delay: .4s;}
@keyframes connectDot{
    0%,100%{opacity: .3;transform: translateY(0);}
    50%{opacity: 1;transform: translateY(-3px);}
}
.connectFade-leave-active{transition: opacity .3s ease;}
.connectFade-leave-to{opacity: 0;}
    .wxSend:active{opacity: .85;}

/* ===== v2.0.8 访客备注 ===== */
.remarkBox{
    margin-top: 8px;
    border-top: 1px solid var(--border,#EBEEF5);
}
.remarkBody{padding: 8px 10px 10px;}
.remarkSaveBtn{
    margin-top: 8px;
    width: 100%;
    border-radius: var(--radius-s,8px);
}

/* ===== v2.0.10 访客搜索 ===== */
.visitorSearchBar{padding: 10px 10px 6px;}
.visitorEmptyTip{
    text-align: center;
    color: var(--text-3,#909399);
    font-size: 12px;
    padding: 18px 0;
}

/* ===== v2.0.12 消息已读双勾（Telegram式）===== */
.msgTickRow{text-align: right;height: 16px;line-height: 16px;margin-top: 1px;}
.msgTick i{
    font-size: 13px;
    font-weight: bold;
    color: #B0B3BA;
}
.msgTick i:first-child{margin-right: -7px;}
.msgTick .tick2{display: none;}
.msgTick.is-read i{color: var(--brand-500,#3370FF);}
.msgTick.is-read .tick2{display: inline-block;}

/* ===== v2.0.13 列表行时间 + 空消息提示 ===== */
.visitorRowTop{
    display: flex;
    align-items: center;
    height: 20px;
    overflow: hidden;
}
.visitorName{
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.visitorLastTime{
    flex-shrink: 0;
    margin-left: 6px;
    font-size: 11px;
    color: #A8ABB2;
}
.chatEmptyTip{
    text-align: center;
    color: #A8ABB2;
    font-size: 13px;
    padding: 48px 0;
}

/* ===== v2.0.14 列表已读双勾 ===== */
.listTick{margin-right: 2px;}
.listTick i{
    font-size: 11px;
    font-weight: bold;
    color: var(--brand-500,#3370FF);
}
.listTick i:first-child{margin-right: -6px;}
