/* SMS Forwarder - 玻璃拟态 · 中式淡雅 */
:root {
  --ink: #2c1810;
  --ink-soft: #5c4a3e;
  --ink-muted: #9c8b7e;
  --cinnabar: #c97d7d;
  --cinnabar-hover: #b56868;
  --cinnabar-light: #f9ecec;
  --gold: #c9a96e;
  --gold-light: #fdf6ed;
  --jade: #7daea3;
  --jade-light: #edf6f3;
  --cream: #faf5f0;
  --paper: #fefcf9;
  --frost: rgba(255,255,255,.72);
  --frost-hover: rgba(255,255,255,.88);
  --frost-border: rgba(255,255,255,.5);
  --border-warm: rgba(180,160,140,.2);
  --shadow-warm: 0 4px 24px rgba(120,80,50,.06);
  --shadow-float: 0 8px 40px rgba(120,80,50,.1);
  --radius: 16px;
  --radius-sm: 10px;
  --radius-xs: 6px;
  --header-h: 56px;
  --font: -apple-system,BlinkMacSystemFont,"Segoe UI","Inter",Roboto,"PingFang SC","Noto Serif SC","Microsoft YaHei",sans-serif;
}

*{margin:0;padding:0}
html{box-sizing:border-box;font-size:16px}
*,*::before,*::after{box-sizing:inherit}
body{font-family:var(--font);background:linear-gradient(160deg,#fef9f3 0%,#faf3ea 30%,#fef9f3 60%,#f5efe6 100%);background-attachment:fixed;color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;min-height:100vh}

/* Glass decorative circles */
body::before{content:'';position:fixed;top:-200px;right:-120px;width:500px;height:500px;background:radial-gradient(circle,rgba(201,125,125,.06) 0%,transparent 70%);border-radius:50%;pointer-events:none;z-index:0}
body::after{content:'';position:fixed;bottom:-150px;left:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(201,169,110,.05) 0%,transparent 70%);border-radius:50%;pointer-events:none;z-index:0}

/* ── Top Navigation ── */
.top-header{height:var(--header-h);background:rgba(44,24,16,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#fff;display:flex;align-items:center;padding:0 28px;position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.08)}
.top-header .logo{font-size:16px;font-weight:700;margin-right:36px;white-space:nowrap;letter-spacing:1px;opacity:.95}
.top-header .logo::before{content:'\4FE1';font-family:serif;margin-right:8px;font-size:18px;color:var(--cinnabar);opacity:.85}
.top-header .nav-menu{display:flex;flex:1;gap:2px}
.top-header .nav-menu a{color:rgba(255,255,255,.55);text-decoration:none;padding:0 20px;line-height:var(--header-h);font-size:13px;transition:.25s;font-weight:500;position:relative}
.top-header .nav-menu a::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:2px;background:var(--cinnabar);transition:width .25s;border-radius:1px}
.top-header .nav-menu a:hover{color:#fff}
.top-header .nav-menu a:hover::after{width:60%}
.top-header .nav-menu a.active{color:#fff}
.top-header .nav-menu a.active::after{width:60%}
.top-header .user-info{display:flex;align-items:center;gap:12px;font-size:12px}
.top-header .user-info .team{background:rgba(255,255,255,.1);padding:3px 14px;border-radius:20px;font-size:11px;letter-spacing:.5px}
.top-header .user-info a{color:rgba(255,255,255,.45);text-decoration:none;padding:4px 10px;border-radius:var(--radius-xs);transition:.2s}
.top-header .user-info a:hover{color:#fff;background:rgba(255,255,255,.06)}
/* /logout 只收 POST（防跨站 GET 踢人下线），顶部导航里的退出用 form+按钮承载 */
.top-header .user-info form{display:inline}
.top-header .user-info form button{background:none;border:none;color:rgba(255,255,255,.45);text-decoration:none;padding:4px 10px;border-radius:var(--radius-xs);transition:.2s;font:inherit;cursor:pointer}
.top-header .user-info form button:hover{color:#fff;background:rgba(255,255,255,.06)}

.main-content{margin-top:var(--header-h);min-height:calc(100vh - var(--header-h));padding:28px;position:relative;z-index:1}

/* ── Glass Card ── */
.card{background:var(--frost);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow-warm);border:1px solid var(--frost-border);transition:box-shadow .3s}
.card:hover{box-shadow:var(--shadow-float)}
.card-title{font-size:18px;font-weight:700;margin-bottom:28px;display:flex;align-items:center;gap:12px;color:var(--ink)}
.card-title::before{content:'';display:inline-block;width:3px;height:20px;background:linear-gradient(180deg,var(--cinnabar),var(--gold));border-radius:2px}

/* ── Toolbar ── */
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:14px;flex-wrap:wrap}
.toolbar-left{display:flex;align-items:center;gap:12px}
.toolbar-right{display:flex;align-items:center;gap:10px}

/* ── Search ── */
.search-box{position:relative}
.search-box input{padding:9px 16px 9px 38px;border:1px solid var(--border-warm);border-radius:24px;font-size:13px;width:220px;transition:.25s;background:rgba(255,255,255,.5);backdrop-filter:blur(8px);color:var(--ink)}
.search-box input::placeholder{color:var(--ink-muted)}
.search-box input:focus{background:var(--frost);border-color:var(--cinnabar);outline:0;box-shadow:0 0 0 3px var(--cinnabar-light)}
.search-box::before{content:'\1F50D';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:13px;pointer-events:none;opacity:.6}

/* ── Tables ── */
.table-wrapper{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--border-warm);background:rgba(255,255,255,.4)}
table.data-table{width:100%;border-collapse:collapse}
table.data-table th{background:rgba(180,160,140,.08);padding:13px 18px;text-align:left;border-bottom:1px solid var(--border-warm);font-weight:600;color:var(--ink-soft);font-size:12px;white-space:nowrap;letter-spacing:.5px}
table.data-table td{padding:14px 18px;border-bottom:1px solid var(--border-warm);font-size:13px;vertical-align:middle;color:var(--ink)}
table.data-table tbody tr{transition:background .2s}
table.data-table tbody tr:hover{background:rgba(201,125,125,.05)}
table.data-table tbody tr:last-child td{border-bottom:none}

/* ── Action Links ── */
.actions{display:flex;gap:8px}
.actions a{display:inline-block;padding:4px 16px;border-radius:20px;text-decoration:none;font-size:12px;font-weight:500;cursor:pointer;transition:.2s}
.actions a:first-child{color:var(--cinnabar);background:var(--cinnabar-light)}
.actions a:first-child:hover{background:var(--cinnabar);color:#fff}
.actions a.danger{color:#b56868;background:#fef0f0}
.actions a.danger:hover{background:#d47575;color:#fff}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:9px 22px;border-radius:24px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border-warm);background:rgba(255,255,255,.5);backdrop-filter:blur(8px);color:var(--ink-soft);transition:all .2s;text-decoration:none;line-height:1.4;white-space:nowrap}
.btn:hover{background:var(--frost-hover);border-color:var(--cinnabar);color:var(--cinnabar)}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff;backdrop-filter:none}
.btn-primary:hover{background:var(--cinnabar-hover);border-color:var(--cinnabar-hover);color:#fff}
.btn-danger{color:#b56868;border-color:rgba(181,104,104,.2);background:rgba(255,240,240,.6)}
.btn-danger:hover{background:#d47575;color:#fff;border-color:#d47575}
.btn-sm{padding:5px 14px;font-size:12px;border-radius:20px}
.btn-sm.btn-primary{padding:6px 16px}
.btn-group{display:flex;gap:6px;align-items:center}
.btn-group .btn{padding:6px 16px;border-radius:20px;font-size:12px;background:rgba(255,255,255,.4);border-color:var(--border-warm);color:var(--ink-muted)}
.btn-group .btn:hover{background:var(--cinnabar-light);border-color:var(--cinnabar);color:var(--cinnabar)}
.btn-group .btn.btn-primary{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff}

/* ── Forms ── */
.form-group{margin-bottom:18px}
.form-group label{display:block;margin-bottom:6px;font-size:12px;color:var(--ink-soft);font-weight:600;letter-spacing:.4px}
.form-group input[type=text],
.form-group input[type=password],
.form-group input[type=number],
.form-group select,
.form-group textarea{width:100%;padding:10px 16px;border:1px solid var(--border-warm);border-radius:var(--radius-sm);font-size:13px;transition:.25s;background:rgba(255,255,255,.45);backdrop-filter:blur(6px);color:var(--ink);font-family:var(--font)}
.form-group input::placeholder,
.form-group textarea::placeholder{color:var(--ink-muted)}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{background:var(--frost);border-color:var(--cinnabar);outline:0;box-shadow:0 0 0 3px var(--cinnabar-light)}
.form-group textarea{min-height:80px;resize:vertical}
input[disabled]{background:rgba(180,160,140,.1)!important;color:var(--ink-muted)!important;cursor:not-allowed;opacity:.7}

/* ── Form Sections ── */
.form-section{background:rgba(255,255,255,.35);backdrop-filter:blur(8px);border-radius:var(--radius-sm);padding:20px 22px;margin-bottom:16px;border:1px solid var(--border-warm)}
.form-section .section-title{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:18px;letter-spacing:.3px}

/* ── Modal (Glass) ── */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(44,24,16,.35);z-index:1000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.modal-overlay.active{display:flex}
.modal{background:var(--frost);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:var(--radius);width:560px;max-width:92vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-float);border:1px solid var(--frost-border);animation:modalIn .3s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-header{padding:20px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-warm)}
.modal-header h3{font-size:16px;font-weight:700;color:var(--ink)}
.modal-header .close{width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:16px;color:var(--ink-muted);background:rgba(255,255,255,.4);border:0;line-height:1;transition:.2s;display:flex;align-items:center;justify-content:center}
.modal-header .close:hover{background:var(--cinnabar);color:#fff}
.modal-body{padding:28px}
.modal-footer{padding:16px 28px;border-top:1px solid var(--border-warm);display:flex;gap:10px;justify-content:flex-end;background:rgba(255,255,255,.25)}

/* ── Badges ── */
.badge{display:inline-block;padding:2px 12px;border-radius:20px;font-size:11px;font-weight:500;letter-spacing:.3px}
.badge-success{background:var(--jade-light);color:var(--jade)}
.badge-danger{background:var(--cinnabar-light);color:var(--cinnabar)}
.badge-default{background:rgba(180,160,140,.1);color:var(--ink-muted)}
.badge-info{background:var(--cinnabar-light);color:var(--cinnabar)}

/* ── Pagination ── */
.pagination{margin-top:24px;display:flex;justify-content:flex-end;align-items:center;gap:4px}
.pagination a{padding:7px 14px;border:1px solid var(--border-warm);border-radius:20px;color:var(--ink-soft);text-decoration:none;font-size:13px;cursor:pointer;transition:.2s;background:rgba(255,255,255,.4)}
.pagination a:hover{border-color:var(--cinnabar);color:var(--cinnabar);background:var(--cinnabar-light)}
.pagination a.active{background:var(--cinnabar);color:#fff;border-color:var(--cinnabar)}
.pagination .info{margin:0 12px;color:var(--ink-muted);font-size:12px}

/* ── Login ── */
.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#f5e6d8 0%,#fdf2e9 30%,#f9ede2 60%,#f5e6d8 100%);position:relative;overflow:hidden}
.login-wrapper::before{content:'';position:absolute;top:-180px;right:-80px;width:420px;height:420px;background:radial-gradient(circle,rgba(201,125,125,.1) 0%,transparent 65%);border-radius:50%}
.login-wrapper::after{content:'';position:absolute;bottom:-120px;left:-60px;width:340px;height:340px;background:radial-gradient(circle,rgba(201,169,110,.08) 0%,transparent 65%);border-radius:50%}
.login-box{width:410px;background:var(--frost);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-radius:var(--radius);padding:48px 44px;box-shadow:var(--shadow-float);border:1px solid var(--frost-border);position:relative;z-index:1}
.login-box .logo{text-align:center;margin-bottom:36px}
.login-box .logo-icon{width:60px;height:60px;background:linear-gradient(135deg,var(--cinnabar),#d4956b);border-radius:18px;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;font-family:serif;box-shadow:0 4px 20px rgba(201,125,125,.25)}
.login-box h1{font-size:22px;margin-top:16px;font-weight:700;color:var(--ink);letter-spacing:1px}
.login-box .subtitle{color:var(--ink-muted);font-size:13px;margin-top:6px;letter-spacing:1px}
.login-box .field{margin-bottom:18px}
.login-box .field label{display:block;margin-bottom:6px;font-size:12px;color:var(--ink-soft);font-weight:600;letter-spacing:.5px}
.login-box .field input{width:100%;height:48px;padding:0 16px;border:1px solid var(--border-warm);border-radius:var(--radius-sm);font-size:14px;transition:.25s;background:rgba(255,255,255,.4);backdrop-filter:blur(6px);color:var(--ink)}
.login-box .field input:focus{background:var(--frost);border-color:var(--cinnabar);box-shadow:0 0 0 3px var(--cinnabar-light);outline:0}
.login-box button{width:100%;height:48px;background:linear-gradient(135deg,var(--cinnabar),#d4956b);color:#fff;border:0;border-radius:24px;font-size:15px;font-weight:600;cursor:pointer;transition:.25s;margin-top:6px;letter-spacing:1px;box-shadow:0 4px 16px rgba(201,125,125,.25)}
.login-box button:hover{box-shadow:0 6px 24px rgba(201,125,125,.35);transform:translateY(-1px)}
.login-box button:disabled{opacity:.6;cursor:not-allowed;transform:none}
.login-box .error{background:var(--cinnabar-light);color:var(--cinnabar);text-align:center;margin-bottom:18px;padding:12px;border-radius:var(--radius-sm);font-size:13px;display:none;border:1px solid rgba(201,125,125,.15)}

/* ── Chat Page ── */
.chat-container{display:flex;height:calc(100vh - var(--header-h));margin-top:var(--header-h);position:relative;z-index:1}
.chat-sidebar{width:268px;border-right:1px solid var(--border-warm);background:var(--frost);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column}
.chat-sidebar .device-selector{padding:14px;border-bottom:1px solid var(--border-warm)}
.chat-sidebar .device-selector select{width:100%;padding:9px 14px;border:1px solid var(--border-warm);border-radius:20px;font-size:13px;background:rgba(255,255,255,.35);backdrop-filter:blur(6px);color:var(--ink)}
.chat-sidebar .member-list{flex:1;overflow-y:auto}
/* 左栏技师分组：表头=技师名(技师号/发送手机号)+会话数，点击整组收起/展开 */
.chat-sidebar .member-group-header{display:flex;align-items:center;gap:6px;padding:8px 18px 6px;font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--cinnabar);background:rgba(201,125,125,.07);border-bottom:1px solid var(--border-warm);cursor:pointer;user-select:none}
.chat-sidebar .member-group-header .member-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.chat-sidebar .member-group-header .member-group-count{flex-shrink:0;font-weight:400;color:var(--ink-muted);background:rgba(255,255,255,.45);border-radius:10px;padding:0 8px;line-height:16px}
.chat-sidebar .member-group-header .member-group-arrow{flex-shrink:0;color:var(--ink-muted);transition:transform .2s;font-size:10px}
.chat-sidebar .member-group.collapsed .member-group-header .member-group-arrow{transform:rotate(-90deg)}
.chat-sidebar .member-group.collapsed .member-group-items{display:none}
.chat-sidebar .member-item{padding:14px 18px;border-bottom:1px solid var(--border-warm);cursor:pointer;transition:.2s}
.chat-sidebar .member-item:hover{background:rgba(201,125,125,.04)}
.chat-sidebar .member-item.active{background:var(--cinnabar-light);border-left:3px solid var(--cinnabar)}
.chat-sidebar .member-item .member-name{font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:space-between;min-width:0}
.chat-sidebar .member-item .member-name .member-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.chat-sidebar .member-item .member-preview{font-size:12px;color:var(--ink-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .chat-sidebar .agent-tag{font-size:10px;color:var(--cinnabar);background:var(--cinnabar-light);padding:1px 10px;border-radius:10px;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;margin-left:6px}
  .chat-sidebar .unread-badge{margin-left:auto;flex-shrink:0;background:#ff4d4f;color:#fff;font-size:11px;min-width:18px;height:18px;line-height:18px;border-radius:9px;padding:0 5px;display:inline-block;text-align:center;font-weight:600;box-shadow:0 1px 3px rgba(255,77,79,.35)}
.chat-sidebar .footer-actions{padding:12px 14px;border-top:1px solid var(--border-warm);display:flex;flex-direction:column;gap:6px}
.chat-sidebar .footer-actions .btn{width:100%}

.chat-main{flex:1;display:flex;flex-direction:column;background:rgba(255,255,255,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.chat-header{padding:14px 28px;border-bottom:1px solid var(--border-warm);display:flex;align-items:center;gap:16px;font-size:13px;background:rgba(255,255,255,.25)}
.chat-header .member-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.chat-header .remark-tag{display:inline-block;padding:4px 14px;background:var(--gold-light);color:var(--gold);border-radius:20px;font-size:12px;cursor:pointer;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.2s;font-weight:500;border:1px solid rgba(201,169,110,.2)}
.chat-header .remark-tag:hover{background:#fef0d5;color:#b8943e}
.remark-add-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--jade-light);color:var(--jade);border-radius:50%;cursor:pointer;transition:.2s;font-size:14px;flex-shrink:0;border:1.5px solid rgba(125,174,163,.25)}
.remark-add-btn::after{content:'\270E'}
.remark-add-btn:hover{background:var(--jade);color:#fff;transform:scale(1.12)}

  .chat-messages{flex:1;overflow-y:auto;padding:18px 28px;background:rgba(250,245,240,.35)}
  .chat-main{position:relative}
  .time-divider{text-align:center;color:var(--ink-muted);font-size:11px;margin:16px 0 4px;opacity:.8;letter-spacing:.5px}
  .new-msg-pill{display:none;position:absolute;bottom:110px;left:50%;transform:translateX(-50%);background:rgba(60,50,45,.72);backdrop-filter:blur(8px);color:#fff;font-size:12px;padding:6px 16px;border-radius:16px;cursor:pointer;z-index:5;box-shadow:0 2px 10px rgba(0,0,0,.15)}
  .new-msg-pill:hover{background:rgba(60,50,45,.88)}
.message-row{display:flex;margin:12px 0}
.message-row.right{justify-content:flex-end}
.message-row.left{justify-content:flex-start}
.message-bubble{max-width:65%;min-width:80px;padding:12px 18px;border-radius:var(--radius);font-size:13px;line-height:1.7;word-break:break-word}
.message-row.right .message-bubble{background:linear-gradient(135deg,var(--cinnabar),#d4956b);color:#fff;border-bottom-right-radius:6px;box-shadow:0 2px 12px rgba(201,125,125,.15)}
.message-row.left .message-bubble{background:var(--frost);backdrop-filter:blur(12px);border:1px solid var(--border-warm);border-bottom-left-radius:6px;box-shadow:var(--shadow-warm)}
.message-bubble img{max-width:280px;max-height:280px;border-radius:var(--radius-sm);cursor:pointer}
  .message-bubble .msg-french{font-weight:600;font-size:13px;margin-bottom:3px}
.message-bubble .msg-chinese{font-size:12px;opacity:.75;margin-top:5px;padding-top:5px;border-top:1px dashed rgba(0,0,0,.06)}
.message-row.right .message-bubble .msg-chinese{border-top-color:rgba(255,255,255,.18)}
.message-bubble .msg-deliver-fail{font-size:10px;color:#fce4e4;background:rgba(0,0,0,.1);padding:4px 10px;margin-top:6px;border-radius:6px;text-align:center}
.message-bubble .msg-translate-error{font-size:10px;color:var(--ink-muted);margin-top:3px}

.chat-input-area{padding:16px 28px;border-top:1px solid var(--border-warm);background:rgba(255,255,255,.25)}
/* 原文对照条：中译法后显示中文原文供对照，可一键还原；默认 display:none，由 showOriginalNote() 控制 */
.chat-input-area .original-note{display:none;align-items:center;gap:8px;margin-bottom:8px;padding:5px 12px;background:rgba(201,125,125,.07);border:1px dashed rgba(201,125,125,.35);border-radius:var(--radius-sm);font-size:12px}
.chat-input-area .original-note .original-note-label{flex-shrink:0;font-weight:600;color:var(--cinnabar)}
.chat-input-area .original-note .original-note-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}
.chat-input-area .original-note .original-note-restore{flex-shrink:0;border:none;background:none;color:var(--cinnabar);cursor:pointer;font-size:12px;padding:0}
.chat-input-area .original-note .original-note-restore:hover{text-decoration:underline}
/* 快捷发送弹窗内的错误行：发送失败/校验失败就地处方，不打断输入（alert 已废除） */
.form-group .qs-error{display:none;margin-top:8px;padding:6px 12px;background:rgba(255,77,79,.08);border:1px solid rgba(255,77,79,.35);border-radius:var(--radius-sm);color:#c0392b;font-size:12px}
/* 页面级轻提示：成功绿/失败红，3s 自动消失 */
.app-toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:3000;padding:10px 24px;border-radius:20px;background:#52c41a;color:#fff;font-size:14px;box-shadow:0 4px 16px rgba(0,0,0,.18);pointer-events:none}
.chat-input-area textarea{width:100%;height:68px;border:1px solid var(--border-warm);border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;resize:vertical;font-family:var(--font);background:rgba(255,255,255,.35);backdrop-filter:blur(6px);transition:.25s;color:var(--ink)}
.chat-input-area textarea:focus{background:var(--frost);border-color:var(--cinnabar);box-shadow:0 0 0 3px var(--cinnabar-light);outline:0}
.chat-input-area .input-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.quick-btns{display:flex;gap:5px;flex-wrap:wrap;flex:1}
.quick-btns button{padding:4px 12px;border:1px solid var(--border-warm);border-radius:20px;background:rgba(255,255,255,.4);font-size:11px;cursor:pointer;color:var(--ink-soft);transition:.15s;white-space:nowrap;backdrop-filter:blur(4px)}
.quick-btns button:hover{border-color:var(--cinnabar);color:var(--cinnabar);background:var(--cinnabar-light)}
.quick-btn{padding:4px 14px;border:1px solid var(--border-warm);border-radius:20px;background:rgba(255,255,255,.45);backdrop-filter:blur(4px);font-size:11px;cursor:pointer;color:var(--ink-soft);transition:.15s;white-space:nowrap;font-family:var(--font)}
.quick-btn:hover{border-color:var(--cinnabar);color:var(--cinnabar);background:var(--cinnabar-light);box-shadow:0 2px 8px rgba(201,125,125,.1)}
.quick-btn-more{background:var(--cinnabar-light) !important;color:var(--cinnabar) !important;border-color:rgba(201,125,125,.15) !important;font-weight:600}
.quick-btn-more:hover{background:var(--cinnabar) !important;color:#fff !important}
.quick-reply-popup-modal{width:440px !important;max-height:70vh}
.quick-reply-popup-modal .modal-body{max-height:50vh;overflow-y:auto}

.send-btn{padding:9px 32px;background:linear-gradient(135deg,var(--cinnabar),#d4956b);color:#fff;border:0;border-radius:24px;cursor:pointer;font-size:13px;font-weight:600;transition:.2s;box-shadow:0 2px 12px rgba(201,125,125,.2)}
.send-btn:hover{box-shadow:0 4px 20px rgba(201,125,125,.3);transform:translateY(-1px)}
.send-btn:disabled{background:rgba(180,160,140,.2);color:var(--ink-muted);cursor:not-allowed;box-shadow:none;transform:none}

.btn-action{padding:5px 16px;border:1px solid var(--border-warm);border-radius:20px;background:rgba(255,255,255,.35);cursor:pointer;font-size:12px;color:var(--ink-soft);transition:.15s;backdrop-filter:blur(4px)}
.btn-action:hover{border-color:var(--cinnabar);color:var(--cinnabar);background:var(--cinnabar-light)}

/* ── Photo Album Modal ── */
.photo-album-modal{width:580px !important}
.photo-album-modal .photo-grid{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-start}
.photo-album-modal .photo-item{width:120px;height:120px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:.2s;position:relative;background:rgba(180,160,140,.08)}
.photo-album-modal .photo-item:hover{border-color:var(--cinnabar);box-shadow:0 4px 16px rgba(201,125,125,.2);transform:translateY(-2px)}
.photo-album-modal .photo-item img{width:100%;height:100%;object-fit:cover}
.photo-album-modal .photo-item .photo-send-hint{position:absolute;bottom:0;left:0;right:0;background:rgba(44,24,16,.55);color:#fff;font-size:11px;text-align:center;padding:5px;opacity:0;transition:.2s;font-weight:500;letter-spacing:.5px}
.photo-album-modal .photo-item:hover .photo-send-hint{opacity:1}

/* Empty state */
.empty-state{text-align:center;padding:40px 20px;display:none}
.empty-state .empty-icon{font-size:48px;margin-bottom:16px;opacity:.7}
.empty-state .empty-title{font-size:16px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}
.empty-state .empty-hint{font-size:13px;color:var(--ink-muted)}

/* ── Upload ── */
.img-preview{display:flex;align-items:center;gap:14px;padding:10px 14px;background:rgba(255,255,255,.35);border-radius:var(--radius-sm);margin-bottom:10px;border:1px solid var(--border-warm);backdrop-filter:blur(4px)}
.img-preview img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm)}
.img-preview-actions{display:flex;gap:8px;margin-left:auto}

/* ── Images ── */
.image-upload-list{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.image-upload-item{width:76px;height:76px;border-radius:var(--radius-sm);overflow:hidden;position:relative;border:1px solid var(--border-warm)}
.image-upload-item img{width:100%;height:100%;object-fit:cover}
.image-upload-item .remove{position:absolute;top:-6px;right:-6px;background:var(--cinnabar);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;box-shadow:0 2px 8px rgba(201,125,125,.3)}
.image-upload-add{width:76px;height:76px;border:1.5px dashed var(--border-warm);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-muted);font-size:26px;transition:.2s}
.image-upload-add:hover{border-color:var(--cinnabar);color:var(--cinnabar);background:var(--cinnabar-light)}

/* ── Quick Replies ── */
.quick-reply-item{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.quick-reply-item input{flex:1}
.quick-reply-item .remove{color:var(--cinnabar);cursor:pointer;font-size:18px}

/* ── Remark Modal ── */
.remark-modal{width:420px !important}
.remark-modal .remark-phone-display{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--cinnabar-light);border-radius:var(--radius-sm);margin-bottom:18px}
.remark-modal .remark-phone-display .phone-icon{font-size:18px}
.remark-modal .remark-phone-display .phone-number{font-size:14px;color:var(--ink);font-family:"SF Mono","Fira Code",monospace;font-weight:500}
.remark-modal textarea{width:100%;padding:14px 16px;border:1px solid var(--border-warm);border-radius:var(--radius-sm);font-size:13px;resize:vertical;min-height:80px;transition:.25s;line-height:1.7;background:rgba(255,255,255,.35);color:var(--ink);font-family:var(--font)}
.remark-modal textarea:focus{background:var(--frost);border-color:var(--cinnabar);box-shadow:0 0 0 3px var(--cinnabar-light);outline:0}

.confirm-modal{width:370px !important}
.confirm-modal .modal-body{text-align:center;padding:36px 28px 24px}

.remark-preview{color:var(--gold) !important;font-weight:500}

/* ── Layout Helpers ── */
.row{display:flex;gap:16px}
.row .col{flex:1;min-width:0}

/* ── Settings Page ── */
.settings-card{max-width:540px;margin:0 auto}
.settings-avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--cinnabar),#d4956b);display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;font-family:serif;margin-right:16px;flex-shrink:0;box-shadow:0 4px 16px rgba(201,125,125,.2)}
.settings-header{display:flex;align-items:center;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--border-warm)}
.settings-header .info h3{font-size:18px;font-weight:700}
.settings-header .info p{font-size:13px;color:var(--ink-muted);margin-top:3px}

/* ── Responsive ── */
@media (max-width:768px){
  .chat-sidebar{width:200px}
  .message-bubble{max-width:85%}
  .row{flex-direction:column}
  .modal{width:95vw}
  .main-content{padding:16px}
  .card{padding:22px}
}

/* ── 主题 ── */
html[data-theme="night"] {
  --ink:#e8e0d8; --ink-soft:#c8beb4; --ink-muted:#9a8f86; --cream:#1b1714; --paper:#241f1b;
  --frost:rgba(36,31,27,.82); --frost-hover:rgba(48,42,36,.92); --border-warm:rgba(255,255,255,.08);
}
html[data-theme="night"] body { background:linear-gradient(160deg,#14110f,#1c1815 50%,#12100e); color:var(--ink); }
html[data-theme="ocean"] {
  --cinnabar:#3d8bfd; --cinnabar-hover:#2f74d6; --cinnabar-light:#e7f1ff; --gold:#7eb6d6; --jade:#5aa7a0;
}
html[data-theme="ocean"] body { background:linear-gradient(160deg,#f4f8fc,#eef4f8 40%,#f7f4ef); }
.mini-select { background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:8px; font-size:12px; padding:2px 4px; }
.vol-range { width:72px; accent-color:#e7b3b3; }
.ring-badge { margin-left:auto; background:#fde8e8; color:#c24141; border-radius:999px; font-size:11px; padding:1px 8px; animation:none; }
.member-time{margin-left:6px;font-size:12px;color:#999;font-weight:400}
.quick-btns{display:none !important}
.dock{position:relative;display:flex;gap:6px;flex-wrap:wrap;padding:0 0 8px;border:0}
.dock-btn{flex:none;display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid #ececec;background:#fff;color:#333;font-size:12px;border-radius:14px;cursor:pointer}
.dock-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dock-btn:hover{background:#f6f6f6}
.dock-name{background:#fff6e8;color:#b86e00;border-color:#f3ddb6}
.dock-name:hover{background:#ffefd6}
.dock-pop{display:none;position:absolute;bottom:40px;z-index:20;background:#2b2b2b;color:#fff;border-radius:10px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.dock-card{font-size:13px;line-height:1.45;white-space:pre-wrap}
.dock-photos{display:grid;grid-template-columns:repeat(3,64px);gap:6px}
.dock-photos img{width:64px;height:64px;object-fit:cover;border-radius:6px;cursor:pointer}
.dock-replies{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}
.owner-menu{position:fixed;z-index:80;width:160px;max-height:240px;overflow:auto;background:#fff;border:1px solid #eee;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px}
.owner-menu button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px}
.owner-menu button.on,.owner-menu button:hover{background:#f4f4f4}
.agent-meta,.bl-sub{display:flex;align-items:baseline;gap:28px;min-width:0}
.meta-body{color:#222;flex:none}
.meta-rest{color:#9a9a9a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-card{align-items:center}
.kind{width:40px;height:40px;min-width:40px;border-radius:50%;font-size:15px;margin:0;flex:none}
.av-dot{overflow:hidden}
.av-dot img,.group-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.group-av{overflow:hidden}
.original-note{display:none;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;background:#f6f6f6;border-radius:10px;font-size:13px}
.original-note-label{color:#888;flex:none}
.original-note-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#222}
.original-note-restore{flex:none;border:1px solid #e6e6e6;background:#fff;color:#333;border-radius:12px;padding:2px 10px;cursor:pointer;font-size:12px}
.sound-title{font-size:13px;font-weight:600;color:#222}
.sound-kinds{display:flex;flex-wrap:wrap;gap:6px}
.sound-kinds button{height:28px;padding:0 10px;border-radius:14px;border:1px solid #eee;background:#fff;color:#444;cursor:pointer;font-size:12px}
.sound-kinds button.on{background:#07c160;color:#fff;border-color:#07c160}
.sound-vol{display:flex;align-items:center;gap:8px;font-size:12px;color:#666}
.sound-vol input{flex:1}
.sound-panel{width:240px}

.chat-sidebar .member-item .member-name{justify-content:flex-start}
.ring-badge{margin-left:auto}
.member-time{margin-left:6px !important}


.call-badge { margin-left:6px; background:#fa8c16; color:#fff; border-radius:999px; font-size:11px; padding:0 6px; }
@keyframes ringpulse { 50% { opacity:.45; } }
.member-item.just-bumped { background:rgba(255,77,79,.12); }
.call-row { justify-content:center; }
.call-card { display:flex; align-items:center; gap:10px; min-width:220px; padding:10px 14px; border-radius:14px; background:#fff; border:1px solid rgba(180,160,140,.25); box-shadow:0 6px 18px rgba(80,50,30,.06); }
.call-ringing { border-color:#ffccc7; background:#fff2f0; }
.call-answered { border-color:#ffe7ba; background:#fff7e6; }
.call-hungup, .call-missed, .call-rejected { border-color:#f0f0f0; background:#fafafa; color:#888; }
.call-icon { font-size:22px; }
.call-title { font-weight:650; font-size:14px; }
.call-sub { font-size:12px; color:#888; }
.msg-del { border:0; background:transparent; color:#c97d7d; font-size:11px; cursor:pointer; margin-left:6px; }
.message-row:hover .msg-del { opacity:1; }
.msg-del { opacity:.55; }

/* 质感收口 */
.top-header { background: linear-gradient(90deg, #241812 0%, #3a241c 55%, #2c1810 100%); box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(44,24,16,.18); }
.brand-mark { width: 28px; height: 28px; display: inline-flex; margin-right: 8px; vertical-align: middle; }
.brand-mark svg { width: 28px; height: 28px; display: block; filter: drop-shadow(0 2px 4px rgba(0,0,0,.25)); }
.top-header .logo { display: flex; align-items: center; letter-spacing: .5px; }
.top-header .logo::before { content: none; }
.nav-menu a { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; }
.nav-menu a.active { background: rgba(255,255,255,.12); }
.nav-ico { opacity: .85; font-size: 13px; }
.chat-sidebar { width: 300px; }
.member-item { margin: 4px 8px; border-radius: 12px; padding: 10px 12px; transition: background .15s, transform .15s; }
.member-item:hover { background: rgba(255,255,255,.72); }
.member-item.active { background: #fff; box-shadow: 0 4px 14px rgba(120,80,50,.08); }
.member-id { font-variant-numeric: tabular-nums; letter-spacing: .2px; }
.btn-translate { background: #2c1810; color: #fff; border-color: #2c1810; }
.btn-translate:hover { background: #4a2c22; }
.auto-tr-toggle { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--ink-soft); padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,.55); }
.login-box { box-shadow: 0 20px 60px rgba(80,40,20,.12); }
.call-card { backdrop-filter: blur(8px); }

.msg-tr-btn{margin-top:6px;border:1px solid rgba(201,125,125,.45);background:#fff;color:#8a4e4e;border-radius:999px;font-size:12px;padding:2px 10px;cursor:pointer}
.msg-tr-btn:disabled{opacity:.6;cursor:wait}
.pref-wrap{position:relative}
.pref-btn{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:4px 12px;cursor:pointer;font:inherit;font-size:13px}
.pref-btn:hover{background:rgba(255,255,255,.2)}
.pref-panel{display:none;position:absolute;right:0;top:36px;width:220px;background:#fff;color:#2c1810;border-radius:12px;padding:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);z-index:200}
.pref-panel.open{display:flex;flex-direction:column;gap:8px}
.pref-panel label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#5c4a3e}
.pref-panel select,.pref-panel input{width:100%;color:#2c1810;background:#faf6f2;border:1px solid rgba(180,160,140,.35);border-radius:8px;padding:4px 6px}

.call-dialog{position:fixed;right:24px;bottom:24px;z-index:300;display:flex}
.call-dialog-card{width:280px;background:#fff;border-radius:16px;padding:16px;box-shadow:0 16px 40px rgba(44,24,16,.2);border:1px solid rgba(201,125,125,.35)}
.call-dialog-title{font-size:12px;color:#c97d7d;letter-spacing:1px}
.call-dialog-phone{font-size:20px;font-weight:700;margin:4px 0}
.call-dialog-status{display:inline-block;padding:2px 10px;border-radius:999px;background:#ff4d4f;color:#fff;font-size:13px}
.call-dialog-status.st-已挂断,.call-dialog-status.st-未接来电,.call-dialog-status.st-已拒接{background:#8c8c8c}
.call-dialog-status.st-通话中,.call-dialog-status.st-去电中{background:#fa8c16}
.call-dialog-log{margin:10px 0;font-size:12px;color:#666;max-height:96px;overflow:auto}
.call-dialog-actions{display:flex;justify-content:flex-end;gap:8px}

.call-dialog{position:fixed;inset:0;background:rgba(28,18,14,.28);z-index:400;align-items:center;justify-content:center}
.call-dialog-card{width:320px;background:#fffdfb;border-radius:20px;padding:18px 18px 14px;box-shadow:0 24px 60px rgba(44,24,16,.22)}
.call-dialog-top{display:flex;justify-content:space-between;color:#9c8b7e;font-size:12px}
.call-x{border:0;background:transparent;font-size:20px;cursor:pointer;color:#9c8b7e}
.call-dialog-phone{font-size:26px;font-weight:700;letter-spacing:.4px;margin:8px 0 6px}
.call-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.btn-answer{background:#1f8a4c;color:#fff;border:0}
.btn-hangup{background:#d4564e;color:#fff;border:0}
html[data-theme="night"] body{background:#161311;color:#f3ebe4}
html[data-theme="night"] .chat-sidebar,html[data-theme="night"] .chat-main{background:#221c18;color:#f3ebe4}
html[data-theme="night"] .member-item{color:#f3ebe4}
html[data-theme="night"] .call-dialog-card{background:#2a231e;color:#f3ebe4}
html[data-theme="ocean"] body{background:linear-gradient(160deg,#eef5fb,#f7f1ea)}
html[data-theme="ocean"] .top-header{background:linear-gradient(90deg,#16324f,#1e4d73)}

.call-card{align-items:flex-start}
.call-actions{display:flex;gap:8px;margin-left:auto}
.call-btn{border:0;border-radius:999px;padding:6px 12px;color:#fff;cursor:pointer;font-size:12px}
.call-btn.answer{background:#1f8a4c}
.call-btn.hangup{background:#d4564e}
.top-header .user-info a,.top-header .user-info form button,.pref-btn{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 12px;background:rgba(255,255,255,.08)}
#pinBtn,#soundToggle{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.65)}
html[data-theme="night"] .message-bubble,html[data-theme="night"] .call-card{background:#322923;color:#f6efe8}
html[data-theme="ocean"] .call-card{background:#f4f9fd}

.ring-badge,.call-badge{white-space:nowrap;line-height:18px;flex:none}
.member-del{margin-left:auto;border:0;background:transparent;color:#c97d7d;font-size:11px;cursor:pointer}
.member-name{display:flex;align-items:center;gap:6px}

.member-name{display:flex;align-items:center;gap:6px;min-width:0}
.member-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-item{position:relative}
.member-del{position:absolute;right:8px;top:8px;margin:0;opacity:0;border:0;background:rgba(255,255,255,.9);color:#8a5a5a;font-size:11px;cursor:pointer;border-radius:8px;padding:2px 6px}
.member-item:hover .member-del{opacity:1}
.msg-del{opacity:0}
.call-card:hover .msg-del,.message-row:hover .msg-del{opacity:1}
.call-dialog-hint{font-size:12px;color:#8a7b72;margin:8px 0 0;line-height:1.5}

/* 夜色：低对比暖灰，不刺眼 */
html[data-theme="night"]{
  --ink:#e7dfd6; --ink-soft:#cbbfb2; --ink-muted:#9d9186;
  --cinnabar:#b08980; --cinnabar-hover:#9c756c; --cinnabar-light:rgba(176,137,128,.16);
  --cream:#2b2724; --paper:#322e2a; --frost:rgba(54,49,45,.92); --frost-hover:rgba(64,58,53,.96);
  --border-warm:rgba(255,255,255,.08); --shadow-warm:none;
}
html[data-theme="night"] body{background:#262220;color:#e7dfd6}
html[data-theme="night"] body::before,html[data-theme="night"] body::after{display:none}
html[data-theme="night"] .top-header{background:#3a342f}
html[data-theme="night"] .chat-sidebar,html[data-theme="night"] .chat-main{background:#2e2a26;color:#e7dfd6}
html[data-theme="night"] .chat-messages{background:#2a2623}
html[data-theme="night"] .member-item{color:#e7dfd6}
html[data-theme="night"] .member-item.active{background:#3d3833}
html[data-theme="night"] .message-row.left .message-bubble{background:#3c3732;color:#efe6dc;border-color:rgba(255,255,255,.06)}
html[data-theme="night"] .message-row.right .message-bubble{background:#8d6f66;color:#fffaf6}
html[data-theme="night"] .call-card,.call-dialog-card{background:#38332f;color:#efe6dc}
html[data-theme="night"] .chat-input-area textarea,html[data-theme="night"] .device-selector select{background:#322e2a;color:#e7dfd6}

/* 雾蓝：灰蓝，避开高饱和蓝 */
html[data-theme="ocean"]{
  --ink:#2e383c; --ink-soft:#5c6a70; --ink-muted:#8b969b;
  --cinnabar:#6d848c; --cinnabar-hover:#5b7179; --cinnabar-light:#e7eef0;
  --gold:#8aa0a4; --jade:#7f948e;
  --cream:#eef1ef; --paper:#f7f6f3;
}
html[data-theme="ocean"] body{background:#e7ecea}
html[data-theme="ocean"] body::before,html[data-theme="ocean"] body::after{display:none}
html[data-theme="ocean"] .top-header{background:#4e5c62}
html[data-theme="ocean"] .message-row.right .message-bubble{background:#6e848c;color:#f7fbfb}
html[data-theme="ocean"] .chat-sidebar{background:rgba(247,248,246,.86)}
html[data-theme="ocean"] .call-card{background:#f4f7f6}


.agent-tag{display:none !important}
.member-del{display:none !important}
.msg-del{opacity:0}
.call-card:hover .msg-del,.message-row:hover .msg-del{opacity:1}
#clearChatBtn,#dropChatBtn{cursor:pointer;font-size:12px;color:#8a735f;border:1px solid rgba(180,160,140,.35);border-radius:999px;padding:2px 10px;background:rgba(255,255,255,.55)}
.call-alert{position:fixed;top:68px;left:50%;transform:translateX(-50%);z-index:450;display:flex;align-items:center;gap:16px;background:#fffaf6;border:1px solid rgba(201,125,125,.35);box-shadow:0 10px 30px rgba(80,40,20,.12);border-radius:14px;padding:10px 14px;min-width:320px}
.call-alert strong{font-size:16px;margin-right:8px}
.call-alert-actions{display:flex;gap:8px;margin-left:auto}
html[data-theme="night"]{
  --ink:#efe6dc; --ink-soft:#d9cec3; --ink-muted:#b3a79c;
  --cinnabar:#c9a396; --cinnabar-hover:#b89286; --cinnabar-light:#3a332e;
  --cream:#2a2623; --paper:#322e2a;
}
html[data-theme="night"] body{background:#2a2623;color:#efe6dc}
html[data-theme="night"] body::before,html[data-theme="night"] body::after{display:none}
html[data-theme="night"] .top-header{background:#3a342f}
html[data-theme="night"] .chat-sidebar,html[data-theme="night"] .chat-main{background:#322e2a;color:#efe6dc}
html[data-theme="night"] .chat-messages{background:#2c2825}
html[data-theme="night"] .member-item{color:#efe6dc}
html[data-theme="night"] .member-item.active{background:#3d3833}
html[data-theme="night"] .message-row.left .message-bubble{background:#3c3732;color:#efe6dc}
html[data-theme="night"] .message-row.right .message-bubble{background:#8d6a62;color:#fffaf6}
html[data-theme="night"] .call-card,html[data-theme="night"] .call-dialog-card,html[data-theme="night"] .call-alert{background:#38332f;color:#efe6dc}
html[data-theme="ocean"]{
  --ink:#243036; --ink-soft:#4d5c62; --ink-muted:#7d8b90;
  --cinnabar:#6d8b86; --cinnabar-hover:#5d7b76; --cinnabar-light:#e4eeeb;
  --cream:#e7eeeb; --paper:#f4f7f5;
}
html[data-theme="ocean"] body{background:#e7eeeb;color:#243036}
html[data-theme="ocean"] body::before,html[data-theme="ocean"] body::after{display:none}
html[data-theme="ocean"] .top-header{background:#5d6e6a}
html[data-theme="ocean"] .message-row.right .message-bubble{background:#6d8b86;color:#f7fbfa}
html[data-theme="ocean"] .chat-sidebar{background:rgba(244,247,245,.92)}
html[data-theme="ocean"] .call-card{background:#f7faf8}

.mobile-back{display:none;border:0;background:transparent;color:var(--cinnabar);font-size:14px;padding:0 8px 0 0;cursor:pointer}
@media (max-width:960px){
  html,body{max-width:100%;overflow-x:hidden}
  .top-header{position:sticky;height:auto;min-height:48px;padding:6px 10px;flex-wrap:wrap;gap:4px}
  .top-header .logo{margin-right:8px}
  .top-header .nav-menu{order:3;width:100%;overflow-x:auto;flex:none}
  .top-header .nav-menu a{line-height:36px;padding:0 12px;white-space:nowrap}
  .top-header .user-info{margin-left:auto;gap:6px}
  .chat-container{margin-top:0;height:calc(100dvh - 8px);min-height:0;flex-direction:column}
  .chat-sidebar,.chat-main{width:100%;min-width:0;min-height:0}
  .chat-main{display:none}
  body.chat-open .chat-sidebar{display:none}
  body.chat-open .chat-main{display:flex;flex:1;min-height:0}
  .mobile-back{display:inline-flex;align-items:center}
  .chat-header{flex-wrap:wrap;gap:6px;padding:8px 10px}
  .chat-messages{min-height:0}
  .chat-input-area textarea{font-size:16px;max-height:28dvh}
  .modal{width:min(480px,calc(100vw - 16px)) !important;max-height:90dvh;overflow:auto}
  .call-dialog-card,.call-alert{width:calc(100vw - 24px);min-width:0;left:12px;right:12px;transform:none}
  .call-alert{left:12px;right:12px;transform:none;max-width:calc(100vw - 24px)}
}
@media (orientation:landscape) and (max-height:520px){
  .chat-sidebar .device-selector{padding:6px 10px}
  .chat-messages{padding-bottom:8px}
}

.list-tools{padding:10px 12px 4px;flex-shrink:0;background:inherit}
#memberSearch{width:100%;box-sizing:border-box;border:1px solid var(--border-warm);border-radius:999px;padding:8px 14px;font-size:14px;background:rgba(255,255,255,.8)}
.agent-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 2px 4px}
.agent-chip{border:0;background:#f3eeea;color:#5c4a3e;border-radius:999px;padding:5px 12px;font-size:12px;white-space:nowrap;cursor:pointer}
.agent-chip.on{background:#1f8a4c;color:#fff}
.agent-select-hidden{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}
.chat-sidebar{min-height:0}
.chat-sidebar .member-list{min-height:0}
.chat-sidebar .footer-actions{flex-shrink:0;flex-direction:row;position:sticky;bottom:0;background:#fffdfb;z-index:3}
.chat-main{min-height:0}
.chat-messages{flex:1;min-height:0}
.chat-input-area{flex-shrink:0;padding:8px 12px 10px}
.quick-btns{flex-wrap:nowrap;overflow-x:auto;margin-bottom:8px}
.composer{display:flex;align-items:flex-end;gap:8px}
.composer textarea{flex:1;width:auto;height:40px;min-height:40px;max-height:120px;padding:9px 12px;resize:none;font-size:16px}
.composer-plus,.composer-tool{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-warm);background:#fff;cursor:pointer;flex-shrink:0;font-size:16px}
.composer .send-btn{height:36px;flex-shrink:0;padding:0 14px}
.plus-menu{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
.plus-menu.open{display:grid}
.plus-menu button{border:1px solid var(--border-warm);background:#fff;border-radius:12px;padding:12px 4px;font-size:12px;cursor:pointer}
.composer-meta{font-size:11px;color:#999;text-align:right;min-height:14px}

/* 干净会话界面：浅底、白列表、绿点缀，去掉玻璃和粉棕装饰 */
body{background:#ececec;line-height:1.5}
body::before,body::after{display:none}
.top-header{height:48px;background:#f7f7f7;color:#191919;padding:0 16px;border-bottom:1px solid #e3e3e3;box-shadow:none;backdrop-filter:none}
.top-header .logo{color:#191919;font-size:15px;font-weight:650;margin-right:20px;letter-spacing:0}
.top-header .logo::before{content:none}
.top-header .nav-menu a{color:#555;line-height:48px;padding:0 14px;font-size:14px}
.top-header .nav-menu a::after{background:#07c160}
.top-header .nav-menu a.active,.top-header .nav-menu a:hover{color:#111}
.top-header .user-info{color:#333;font-size:13px}
.top-header .user-info .team,.top-header .user-info a,.top-header .user-info form button,.pref-btn{color:#333;background:#fff;border:1px solid #e5e5e5;border-radius:8px}
.chat-container{background:#ededed}
.chat-sidebar{width:320px;background:#fff;border-right:1px solid #e6e6e6;backdrop-filter:none}
.chat-main{background:#ededed;backdrop-filter:none}
.chat-header{background:#f7f7f7;border-bottom:1px solid #e6e6e6;padding:10px 16px}
.chat-messages{background:#ededed;padding:16px}
.member-group-header{background:#fafafa;color:#888;letter-spacing:0;font-weight:500;border-bottom:1px solid #f0f0f0}
.chat-sidebar .member-item{padding:11px 14px;border-bottom:1px solid #f3f3f3}
.chat-sidebar .member-item:hover{background:#f7f7f7}
.chat-sidebar .member-item.active{background:#ececec;border-left:0}
.chat-sidebar .member-item .member-name{font-size:15px;font-weight:600;color:#191919}
.chat-sidebar .member-item .member-preview{font-size:13px;color:#999;margin-top:2px}
.remark-preview{color:#07a355 !important}
.chat-sidebar .footer-actions{background:#fff;border-top:1px solid #eee;padding:10px}
.btn{border-radius:8px;background:#fff;border-color:#e5e5e5;backdrop-filter:none}
.btn-primary,.send-btn{background:#07c160;border-color:#07c160;color:#fff;box-shadow:none;border-radius:8px}
.btn-primary:hover,.send-btn:hover{background:#06ad56;border-color:#06ad56;color:#fff;transform:none;box-shadow:none}
#memberSearch{background:#f4f4f4;border:0;border-radius:8px;height:36px}
.agent-chip{background:#f3f3f3;color:#444;border-radius:999px}
.agent-chip.on{background:#07c160;color:#fff}
.message-row.left .message-bubble{background:#fff;color:#191919;border:0;box-shadow:none;border-radius:8px;backdrop-filter:none}
.message-row.right .message-bubble{background:#95ec69;color:#191919;border:0;box-shadow:none;border-radius:8px}
.chat-input-area{background:#f7f7f7;border-top:1px solid #e6e6e6}
.composer textarea{background:#fff;border:0;border-radius:8px;box-shadow:none}
.composer textarea:focus{box-shadow:none;border:0;background:#fff}
.composer-plus,.composer-tool{background:#fff;border:1px solid #e5e5e5;color:#333}
.quick-btns button,.quick-btn{background:#fff;border-color:#eee;border-radius:999px;color:#555}
.plus-menu button{background:#fff;border-radius:10px}
.call-card{border-radius:10px;box-shadow:none;border:1px solid #eee}
.modal{background:#fff;backdrop-filter:none;border:0;border-radius:12px}
.card{background:#fff;backdrop-filter:none;border:1px solid #eee;box-shadow:none}
html[data-theme="night"] body,html[data-theme="night"] .chat-container,html[data-theme="night"] .chat-main,html[data-theme="night"] .chat-messages{background:#111}
html[data-theme="night"] .top-header,html[data-theme="night"] .chat-header,html[data-theme="night"] .chat-input-area{background:#1c1c1c;color:#eee;border-color:#2a2a2a}
html[data-theme="night"] .top-header .logo,html[data-theme="night"] .top-header .nav-menu a,html[data-theme="night"] .top-header .user-info,html[data-theme="night"] .top-header .user-info a,html[data-theme="night"] .top-header .user-info form button,html[data-theme="night"] .pref-btn{color:#eee;background:#262626;border-color:#333}
html[data-theme="night"] .chat-sidebar,html[data-theme="night"] .chat-sidebar .footer-actions,html[data-theme="night"] .message-row.left .message-bubble{background:#1c1c1c;color:#eee}
html[data-theme="night"] .message-row.right .message-bubble{background:#2c7a45;color:#fff}
html[data-theme="ocean"] body,html[data-theme="ocean"] .chat-messages,html[data-theme="ocean"] .chat-main{background:#e7eeeb}
html[data-theme="ocean"] .top-header{background:#f4f7f5;color:#243036}
html[data-theme="ocean"] .agent-chip.on,.btn-primary,.send-btn{background:#3d8b7a;border-color:#3d8b7a}

.nav-toggle{display:none}
.login-wrapper{background:#e9e6df}
.login-wrapper::before,.login-wrapper::after{display:none}
.login-box{background:#fffdf8;border:0;border-radius:22px;box-shadow:0 16px 50px rgba(40,30,20,.08);padding:40px 36px}
.login-box .logo-icon{display:none}
.login-box .eyebrow{letter-spacing:.18em;font-size:12px;color:#8a8178;margin:0}
.login-box h1{font-size:34px;margin:8px 0 6px;letter-spacing:0}
.login-box .subtitle{color:#6d6560;letter-spacing:0;margin-bottom:22px}
.login-box .field input{background:#f3f1ec;border:0;border-radius:12px;height:46px}
.login-box button{background:#18a34a;border-radius:12px;box-shadow:none;letter-spacing:0}
@media (max-width:960px){
  html,body{height:100%;overflow:hidden;background:#ededed}
  .top-header{position:sticky;top:0;height:48px !important;min-height:48px;max-height:48px;flex-wrap:nowrap !important;overflow:hidden;padding:0 12px;z-index:300}
  .top-header .nav-menu,.top-header .user-info{display:none}
  .nav-toggle{display:inline-flex;margin-left:auto;height:32px;padding:0 12px;border-radius:8px;border:1px solid #ddd;background:#fff;color:#222}
  .top-header.nav-open{height:auto !important;max-height:none;overflow:visible;flex-wrap:wrap !important;align-items:flex-start;padding-bottom:8px}
  .top-header.nav-open .nav-toggle{margin-left:auto}
  .top-header.nav-open .nav-menu{display:flex;flex-direction:column;width:100%;order:3;background:#fff;border-radius:12px;margin-top:8px}
  .top-header.nav-open .nav-menu a{line-height:42px;padding:0 12px}
  .top-header.nav-open .user-info{display:flex;width:100%;order:4;flex-wrap:wrap;gap:8px;padding:8px 0}
  .chat-container{height:calc(100dvh - 48px) !important;margin-top:0 !important;min-height:0}
  .top-header.nav-open + .chat-container{height:calc(100dvh - 220px) !important}
  .chat-sidebar{height:100%;background:#fff}
  .chat-sidebar .member-list{flex:1}
  .chat-sidebar .footer-actions{margin-top:0}
}

.mobile-tab{display:none}
.composer textarea{min-height:46px;height:46px;font-size:16px;border-radius:10px}
.composer-plus,.composer-tool,.composer .send-btn{width:42px;height:42px}
.composer .send-btn{width:auto;min-width:64px;border-radius:10px}
@media (max-width:960px){
  .nav-toggle{display:none !important}
  .top-header{height:48px !important;max-height:48px !important;overflow:hidden !important;flex-wrap:nowrap !important}
  .top-header .nav-menu{display:none !important}
  .top-header .user-info > span,
  .top-header .user-info > a,
  .top-header .user-info > form{display:none !important}
  .top-header .user-info{display:flex !important}
  .brand-name{display:none}
  .mobile-tab{
    display:flex;position:fixed;left:0;right:0;bottom:0;height:58px;z-index:800;
    background:#fff;border-top:1px solid #e6e6e6;justify-content:space-around;align-items:center;
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-tab a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#666;font-size:11px;min-width:48px}
  .mobile-tab a b{font-size:18px;font-weight:500;line-height:1}
  .mobile-tab a.on{color:#07c160}
  .main-content{padding-bottom:74px}
  .chat-container{height:calc(100dvh - 48px - 58px) !important}
  #clearChatBtn,#dropChatBtn{font-size:0}
  #clearChatBtn::after{content:"清";font-size:13px}
  #dropChatBtn::after{content:"删";font-size:13px}
}
html[data-theme="night"] .mobile-tab{background:#1c1c1c;border-color:#333}
html[data-theme="night"] .mobile-tab a{color:#ccc}
html[data-theme="night"] .mobile-tab a.on{color:#46d37a}

.member-item{display:flex;gap:10px;align-items:flex-start}
.member-av{width:40px;height:40px;border-radius:50%;background:#d9d3cc;color:#333;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.member-body{min-width:0;flex:1}
.member-time{margin-left:auto;font-size:12px;color:#999;font-weight:400}
.list-actions{display:flex;gap:8px;padding:8px 0 4px}
.list-actions .btn{flex:1}
.composer-side{display:flex;flex-direction:column;gap:6px}
.composer-side .send-btn{min-width:42px;height:42px;padding:0;border-radius:10px}
.call-row{justify-content:center}
.call-pill{min-width:0;border-radius:999px;padding:6px 14px;box-shadow:none;background:#fff}
.call-pill .call-sub{display:none}
.call-pill .call-icon{font-size:14px}
@media (min-width:961px){
  body.wx-shell{display:flex;height:100dvh;overflow:hidden;background:#e7e4dc}
  body.wx-shell .top-header{
    position:relative;top:auto;left:auto;width:72px;height:100dvh;flex:none;
    flex-direction:column;align-items:center;justify-content:flex-start;
    padding:10px 0;background:#1c1c1c;color:#fff;border:0;gap:8px
  }
  body.wx-shell .brand-name{display:none}
  body.wx-shell .top-header .nav-menu{display:flex;flex-direction:column;width:100%;flex:1;gap:4px}
  body.wx-shell .top-header .nav-menu a{
    font-size:0;line-height:1.1;padding:10px 0;color:#cfcfcf;display:flex;flex-direction:column;align-items:center;gap:4px
  }
  body.wx-shell .top-header .nav-menu a .nav-ico{font-size:18px}
  body.wx-shell .top-header .nav-menu a::after{
    content:attr(data-short);font-size:11px;width:auto;height:auto;background:none;position:static;transform:none
  }
  body.wx-shell .top-header .nav-menu a.active{color:#46d37a}
  body.wx-shell .user-info{flex-direction:column;gap:8px;margin-top:auto}
  body.wx-shell .user-info > span,
  body.wx-shell .user-info > form{display:none}
  body.wx-shell .user-info > a{font-size:0;background:transparent;border:0;color:#ddd}
  body.wx-shell .user-info > a::before{content:"⚙";font-size:18px}
  body.wx-shell .pref-btn{background:transparent;border:0;color:#ddd;padding:4px}
  body.wx-shell .chat-container{margin:0;height:100dvh;flex:1;min-width:0;background:#e7e4dc}
  body.wx-shell .chat-sidebar{width:340px;background:#fff}
  body.wx-shell .chat-main,body.wx-shell .chat-messages{background:#e7e4dc}
  body.wx-shell .chat-header{background:#f6f4f0;border-bottom:1px solid #e4e0d8}
  body.wx-shell #currentMember{display:block;font-size:16px;color:#191919;font-weight:650}
  body.wx-shell #chatWith{display:block;font-size:12px;color:#888}
  body.wx-shell .member-info{flex-direction:column;align-items:flex-start;gap:0}
  body.wx-shell #topicStatus,body.wx-shell #wsStatus{font-size:0}
  body.wx-shell #topicStatus::before{content:"●";font-size:10px;color:#46d37a}
  body.wx-shell .message-row.right .message-bubble{background:#95ec69;color:#191919}
  body.wx-shell .message-row.left .message-bubble{background:#fff;color:#191919}
  body.wx-shell .mobile-tab{display:none}
}

/* 左侧菜单固定，内容区单独滚动 */
@media (min-width:961px){
  body.wx-shell .top-header{position:fixed;left:0;top:0;bottom:0;z-index:200;height:100dvh}
  body.wx-shell .chat-container{margin-left:72px}
  body.wx-shell .manage-page{margin-left:72px;height:100dvh;overflow:auto;flex:1;min-width:0;background:#eceae4}
}
.manage-page{padding:28px 32px 48px}
.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.manage-head h1{margin:0;font-size:20px;font-weight:650;color:#1c1c1c}
.manage-head p{margin:6px 0 0;font-size:13px;color:#8a847c;line-height:1.5}
.manage-search{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.manage-search input{flex:1;height:40px;border:0;border-radius:12px;background:#fff;padding:0 14px;font-size:14px;outline:none;box-shadow:0 1px 2px rgba(40,30,20,.04)}
.manage-search input:focus{box-shadow:0 0 0 2px rgba(7,193,96,.25)}
.chip-row{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:0;background:#fff;color:#555;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer}
.chip.on{background:#07c160;color:#fff}
.chip.on-black{background:#c45c5c;color:#fff}
.chip.on-white{background:#3d8b66;color:#fff}
.agent-list,.bl-list{display:flex;flex-direction:column;gap:12px}
.agent-card,.bl-card{background:#fff;border-radius:16px;padding:16px 18px;display:flex;gap:14px;align-items:flex-start;box-shadow:0 1px 2px rgba(40,30,20,.04)}
.av-dot{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:650;flex:none;font-size:16px}
.agent-main,.bl-main{min-width:0;flex:1}
.agent-line{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.agent-line strong{font-size:16px;color:#1c1c1c}
.agent-line .phone{color:#333;font-size:14px}
.agent-meta{margin-top:4px;color:#666;font-size:13px}
.agent-addr{margin-top:2px;color:#888;font-size:13px}
.agent-svc{margin-top:2px;color:#888;font-size:13px}
.card-actions{display:flex;gap:8px;flex:none}
.card-actions button{border:1px solid #e6e2dc;background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;color:#444}
.card-actions button.danger{color:#c45c5c}
.card-actions button:hover{background:#f7f5f2}
.pager{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;color:#888;font-size:13px}
.pager button{border:1px solid #e6e2dc;background:#fff;border-radius:8px;padding:6px 12px;cursor:pointer}
.pager button:disabled{opacity:.45;cursor:default}
.empty-note{background:#fff;border-radius:16px;padding:28px;text-align:center;color:#999}
.bl-add{background:#fff;border-radius:16px;padding:14px;display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.bl-add input,.bl-add select{height:38px;border:0;background:#f4f2ee;border-radius:10px;padding:0 12px;font-size:14px;outline:none}
.bl-add input.phone{width:200px}
.bl-add input.reason{flex:1;min-width:180px}
.bl-add button{height:38px;border:0;background:#07c160;color:#fff;border-radius:10px;padding:0 16px;cursor:pointer;font-size:14px}
.bl-reason{margin-top:6px;font-size:14px;color:#1c1c1c;font-weight:550}
.bl-reason.empty{color:#bbb;font-weight:400}
.bl-sub{margin-top:4px;font-size:12px;color:#999}
.kind{width:40px;height:40px;min-width:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:650;margin:0;flex:none}
.kind.k1{background:#fdecec;color:#c45c5c}
.kind.k2{background:#e8f7ee;color:#1f8a4c}
.kind.k0{background:#f1f0ee;color:#888}
.list-tag{display:inline-block;margin-top:2px;font-size:12px;font-weight:550;color:#07a355}
.list-tag.tag-black{color:#c45c5c}
.list-tag.tag-unknown{color:#998}
html[data-theme="night"] .manage-page{background:#141414}
html[data-theme="night"] .agent-card,html[data-theme="night"] .bl-card,html[data-theme="night"] .bl-add,html[data-theme="night"] .empty-note{background:#1e1e1e;color:#eee}
html[data-theme="night"] .manage-head h1,html[data-theme="night"] .agent-line strong,html[data-theme="night"] .bl-reason{color:#eee}
html[data-theme="night"] .manage-search input,html[data-theme="night"] .bl-add input,html[data-theme="night"] .bl-add select,html[data-theme="night"] .chip,html[data-theme="night"] .card-actions button,html[data-theme="night"] .pager button{background:#2a2a2a;color:#ddd;border-color:#333}
@media (max-width:960px){
  .manage-page{padding:16px 12px 80px}
  .bl-add input.phone,.bl-add input.reason{width:100%}
  .agent-card,.bl-card{flex-wrap:wrap}
}

.rail-mark{width:46px;height:46px;padding:0;background:#101010;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 8px 16px rgba(0,0,0,.35), inset 0 0 0 1px rgba(212,175,55,.45)}
.rail-mark svg{width:46px;height:46px;display:block}
.plane-edge,.plane-fold,.plane-light{fill:none;stroke-linejoin:round;stroke-linecap:round}
.plane-edge{stroke:#ffe7a8;stroke-width:1.5;filter:drop-shadow(0 0 3px rgba(255,220,130,.95));animation:plane-glow 2.2s ease-in-out infinite}
.plane-light{stroke:#fff;stroke-width:1.8;stroke-dasharray:14 80;filter:drop-shadow(0 0 4px #ffe7a8);animation:plane-run 2.4s linear infinite}
.plane-fold{stroke:#8d6e32;stroke-width:.9}
@keyframes plane-run { to { stroke-dashoffset:-90; } }
@keyframes plane-glow {
  0%,100% { stroke:#a6843c; filter:drop-shadow(0 0 0 rgba(246,226,168,0)); }
  50% { stroke:#fff4cc; filter:drop-shadow(0 0 4px rgba(246,214,140,.95)); }
}
@media (min-width:961px){
  body.wx-shell .user-info{
    width:58px;margin-top:auto;padding:12px 0 8px;gap:10px;align-items:center;
    border-radius:18px 18px 0 0;
    background:linear-gradient(180deg, rgba(212,175,55,.22), rgba(18,18,18,.4) 36%, #101010);
    border-top:1px solid rgba(232,201,122,.55);
    box-shadow:inset 0 1px 0 rgba(255,236,190,.28), 0 -12px 20px rgba(0,0,0,.22);
  }
  body.wx-shell .pref-btn{
    width:46px;min-height:46px;padding:6px 0;border-radius:14px;font-size:11px;letter-spacing:.4px;color:#f3dd9a;
    background:linear-gradient(180deg,#4a3d28,#171717);
    border:1px solid rgba(232,201,122,.6);
    box-shadow:inset 0 1px 0 rgba(255,236,190,.4), 0 8px 14px rgba(0,0,0,.38);
  }
  body.wx-shell .user-info > a{
    width:46px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(180deg,#2a2a2a,#141414);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  }
}
.image-drop{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px;border:1px dashed #ddd;border-radius:12px;background:#fafafa}
.image-drop.over{border-color:#c6a15a;background:#fffaf0}
.photo-link{flex:1;min-width:180px;height:36px;border:0;border-radius:8px;background:#fff;padding:0 10px;outline:none}

body.wx-shell .logo{margin-bottom:8px}

.chat-sidebar .member-group-header{gap:8px;padding:10px 12px;background:#f7f6f3;color:#222}
.chat-sidebar .group-av{width:32px;height:32px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:650;flex:none}
.chat-sidebar .member-group-name{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0;font-size:14px;letter-spacing:0;font-weight:400;color:#222}
.chat-sidebar .member-group-name b{font-weight:650;color:#1a1a1a;white-space:nowrap}
.chat-sidebar .group-phone{color:#8d8880;font-size:13px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-sidebar .member-group-count{margin-left:auto;background:#f25c54;color:#fff;border-radius:999px;min-width:20px;height:20px;line-height:20px;padding:0 6px;text-align:center;font-size:12px;font-weight:650}
.member-av{width:42px;height:42px;font-size:11px;letter-spacing:-.3px;color:#666;background:#ece7e1;font-variant-numeric:tabular-nums}
.pin-mark{font-size:12px;line-height:1;margin-right:2px;filter:grayscale(.2);flex:none}
.list-tag{color:#1f9d57}
.list-tag.tag-black{color:#d24b4b}
.list-tag.tag-unknown{color:#b8860b}
.member-preview{color:#9a948c}
.agent-card{padding:12px 14px;align-items:center}
.agent-line strong{font-weight:650}
.agent-line .phone{color:#8a847c;font-weight:400}
.agent-meta,.agent-addr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.av-dot{width:36px;height:36px;font-size:14px}

.member-av-wrap{position:relative;flex:none;width:42px;height:42px}
.member-av-wrap .unread-badge{position:absolute;top:-4px;right:-6px;margin:0;z-index:2}
.member-time{margin-left:auto}
.theme-select-hidden{position:absolute;opacity:0;pointer-events:none;height:0}
.theme-label{font-size:12px;color:#888}
.theme-swatches{display:flex;flex-wrap:wrap;gap:6px}
.theme-swatches button{border:1px solid #e6e2dc;background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}
.theme-swatches button.on{background:#07c160;color:#fff;border-color:#07c160}
body.wx-shell .pref-panel{position:fixed;left:84px;bottom:16px;top:auto;right:auto;width:260px;z-index:500}
html[data-theme="wechat"] body{background:#ededed}
html[data-theme="wechat"] .chat-sidebar{background:#fff}
html[data-theme="wechat"] .chat-main,html[data-theme="wechat"] .chat-messages{background:#ededed}
html[data-theme="wechat"] .message-row.right .message-bubble{background:#95ec69;color:#191919}
html[data-theme="wechat"] .message-row.left .message-bubble{background:#fff;color:#191919}
html[data-theme="eye"] body,html[data-theme="eye"] .chat-messages{background:#f4f1e6}
html[data-theme="eye"] .chat-sidebar{background:#faf8f1}
html[data-theme="eye"] .message-row.right .message-bubble{background:#d7e8c8;color:#243024}
html[data-theme="eye"] .message-row.left .message-bubble{background:#fffdf6;color:#333}
@media (max-width:960px){
  body.wx-shell .top-header{display:none}
  body.wx-shell .chat-container,body.wx-shell .manage-page{margin-left:0;height:calc(100dvh - 58px)}
  body.wx-shell .mobile-tab{display:flex}
  body.chat-open .mobile-tab{display:none}
  body.chat-open .chat-container{height:100dvh}
  .mobile-back{display:inline-flex}
  body.wx-shell .pref-panel{left:12px;right:12px;bottom:72px;width:auto}
  .chat-sidebar{width:100% !important}
  .member-item{padding:10px 12px}
}

.chat-sidebar .member-group-count{background:#f25c54 !important;color:#fff !important;border-radius:999px;min-width:22px;height:22px;line-height:22px;padding:0 6px;text-align:center;font-size:12px;font-weight:700}
.list-tag.tag-black{color:#c9a227 !important}
.list-tag.tag-white{color:#07a355 !important}
.list-tag.tag-unknown{color:#8a847c !important}
.remark-tag.tag-black{color:#c9a227}
.remark-tag.tag-white{color:#07a355}
.composer{align-items:flex-end;gap:8px}
.composer textarea{min-height:64px;max-height:140px;border-radius:12px;padding:10px 12px;font-size:15px;background:#fff}
.composer-side{flex-direction:row;gap:6px}
.composer-tool,.composer .send-btn{width:36px;height:36px;min-width:36px;border-radius:8px;padding:0}
.composer .send-btn{background:#8fd9a8;color:#fff;border:0}
.composer-plus{width:32px;height:36px;border:0;background:transparent;font-size:18px}
@media (max-width:960px){
  body.wx-shell .chat-header{flex-wrap:nowrap;align-items:center;padding:8px 10px;gap:8px;min-height:48px}
  body.wx-shell .member-info{flex-direction:row !important;align-items:center;gap:6px;min-width:0}
  body.wx-shell #currentMember{font-size:16px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
  body.wx-shell #chatWith,#topicStatus,#soundToggle,#clearChatBtn,#dropChatBtn{display:none !important}
  .mobile-back{writing-mode:horizontal-tb;white-space:nowrap;flex:none}
  .chat-messages{padding-bottom:8px}
  .chat-sidebar{padding-bottom:8px}
  .member-group-header{position:sticky;top:0;z-index:2}
}

.login-wrapper{background:#f7f9fc !important;background-image:radial-gradient(circle at 20% 20%,rgba(180,200,230,.35) 0 1px,transparent 1.5px),radial-gradient(circle at 80% 30%,rgba(180,200,230,.28) 0 1px,transparent 1.5px),linear-gradient(180deg,#fbfcfe,#f3f6fb) !important}
.login-wrapper::before,.login-wrapper::after{display:block !important;width:100%;height:100%;top:0;left:0;right:0;bottom:0;border-radius:0;background:none;opacity:.55;background-image:linear-gradient(rgba(190,205,225,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(190,205,225,.35) 1px,transparent 1px);background-size:120px 120px;mask-image:radial-gradient(circle at 50% 40%,#000 0,#000 28%,transparent 70%)}
.login-box{background:#fff;border:0;box-shadow:0 10px 40px rgba(40,70,120,.06);width:360px}
.login-box h1{font-size:18px;font-weight:600;color:#5c6b7a;letter-spacing:.5px}
.login-box button{background:#c9852a;border-color:#c9852a;border-radius:4px}
.login-box button:hover{background:#b97824}
.login-box input{background:#f4f7fb;border:0;border-radius:4px}
.member-group-count,.unread-badge{display:inline-flex !important;align-items:center;justify-content:center;line-height:1 !important;padding:0 !important}
.member-group-count{width:22px;height:22px;min-width:22px}
.composer{flex-direction:column;align-items:stretch;gap:8px}
.composer textarea{min-height:72px;border:1px solid #e6e6e6 !important;border-radius:8px;background:#fff}
.composer-tools{display:flex;align-items:center;gap:14px;padding:0 2px 2px}
.composer-plus{width:28px;height:28px;border:1.5px solid #222;border-radius:50%;background:#fff;font-size:18px;line-height:1;color:#222}
.composer-tool,.composer .send-btn{height:34px;border-radius:8px;padding:0 12px;width:auto;min-width:0;display:inline-flex;align-items:center;gap:4px}
.composer .send-btn{min-width:84px;justify-content:center;background:#07c160;color:#fff;font-size:14px}
.composer .send-btn:disabled,.composer-tool:disabled{background:#e9e9e9;color:#b5b5b5;border-color:#e9e9e9;cursor:not-allowed}
.composer-tool .ico,.send-btn .ico{font-size:12px;opacity:.8}
@media (max-width:960px){
  body.wx-shell .manage-page{height:calc(100dvh - 56px);overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 28px}
  body.wx-shell .manage-head p{display:none}
  body.wx-shell .chat-container{height:calc(100dvh - 56px)}
  body.chat-open .chat-container{height:100dvh}
  body.chat-open .chat-input-area{padding-bottom:8px}
  .chat-sidebar{display:flex;flex-direction:column;height:100%;overflow:hidden}
  #memberList{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
  .chat-sidebar .footer-actions{position:static}
  .mobile-tab{height:52px}
  .main-content{padding-bottom:0}
}

.login-box button{background:#07c160 !important;border-color:#07c160 !important;box-shadow:none !important}
.login-box button:hover{background:#06ad56 !important}
.chat-main,.chat-messages,.chat-input-area,.quick-btns{background:#ededed}
.chat-input-area{border-top:0;padding:6px 16px 12px}
.quick-btns{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 8px;margin:0}
.quick-btns button,.quick-btn{background:#fff;border:0;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.06);color:#333;padding:8px 12px}
.composer{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:8px 8px 6px}
.composer textarea{border:0 !important;min-height:64px;background:transparent}
.composer-tools{justify-content:flex-end;gap:8px}
.tool-pic{background:#f25c54 !important;color:#fff !important;border:0}
.tool-tr{background:#f0b429 !important;color:#fff !important;border:0}
.composer .send-btn{background:#07c160 !important;color:#fff !important}
.tool-pic:disabled,.tool-tr:disabled,.composer .send-btn:disabled{background:#e5e5e5 !important;color:#aaa !important}
html[data-theme="night"] .chat-main,html[data-theme="night"] .chat-messages,html[data-theme="night"] .chat-input-area,html[data-theme="night"] .quick-btns{background:#111}

.chat-main,.chat-messages,.chat-input-area,.quick-btns{background:#f5f5f5 !important}
.quick-btns{flex-wrap:nowrap !important;align-items:center;height:40px;max-height:40px;overflow-x:auto;overflow-y:hidden;padding:4px 12px}
.quick-btns button,.quick-btn{height:28px;padding:0 10px !important;line-height:28px;border-radius:14px;flex:none}
@media (max-width:960px){
  .chat-sidebar{background:#fff}
  #memberList{flex:1 1 auto;min-height:0;background:#fff}
  .chat-sidebar .footer-actions{display:none}
  .manage-page{padding-bottom:12px}
  .bl-add{padding:8px;gap:6px}
  .bl-add input,.bl-add select,.bl-add button{height:34px}
  .chip{padding:4px 8px;font-size:12px}
  #btnBlack,#btnWhite,#btnUnknown,#btnAll{font-size:0}
  #btnAll::after{content:"全";font-size:12px}
  #btnBlack::after{content:"黑";font-size:12px}
  #btnWhite::after{content:"白";font-size:12px}
  #btnUnknown::after{content:"未";font-size:12px}
  .bl-card{padding:8px 10px;gap:8px;border-radius:10px;align-items:center}
  .bl-card .card-actions{flex-direction:column;gap:4px}
  .bl-card .card-actions button{padding:2px 8px;font-size:12px}
  .bl-reason{margin-top:2px;font-size:13px}
  .manage-search{flex-wrap:wrap}
}

.pin-btn{width:28px;height:28px;border-radius:50%;border:0;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.12);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.icon-btn{cursor:pointer;font-size:16px;position:relative}
.sound-panel{position:absolute;right:12px;top:46px;z-index:20;background:#fff;border:1px solid #eee;border-radius:10px;padding:10px;gap:8px;align-items:center;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.agent-photo-strip{display:none !important}
.agent-photo-strip img{width:54px;height:54px;object-fit:cover;border-radius:6px;border:1px solid #eee;cursor:pointer;background:#fff}

.group-av.has-photo,.member-av.has-photo{background-size:cover;background-position:center;color:transparent}
.status-pill{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 8px;border-radius:11px;background:#f3f3f3;color:#888;font-size:11px;margin-left:6px}
.status-pill.ok{background:#e8f8ef;color:#07a355}
.status-pill.warn{background:#fff6e8;color:#d48806}
.status-pill.bad{background:#ffecec;color:#e23d3d}
.pin-mark{display:inline-flex;width:16px;height:16px;border-radius:50%;background:#fff;align-items:center;justify-content:center;margin-right:4px;box-shadow:0 1px 2px rgba(0,0,0,.12)}

.sound-panel{display:none;flex-direction:column;width:220px;padding:12px;gap:10px}
.sound-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:#333}
.sound-row select,.sound-row input[type=range]{width:120px}
.sound-actions{display:flex;gap:8px}
.sound-actions button{flex:1;height:30px;border-radius:6px;border:1px solid #e5e5e5;background:#fff}
.sound-actions .primary{background:#07c160;color:#fff;border:0}
.link-dot{display:inline-flex !important;align-items:center;gap:4px;font-size:12px;color:#999;margin-left:8px}
.link-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:#ccc}
.link-dot.ok{color:#07a355}
.link-dot.ok::before{background:#07c160}
.link-dot.warn{color:#d48806}
.link-dot.warn::before{background:#f0b429}
.link-dot.bad{color:#e23d3d}
.link-dot.bad::before{background:#f25c54}
#topicStatus{display:none !important}

.link-dot{height:26px;padding:0 10px 0 8px;border-radius:13px;background:#f2f2f2;font-size:12px;font-weight:600}
.link-dot::before{width:10px;height:10px;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.link-dot.ok{background:#e7f8ee}
.link-dot.ok::before{box-shadow:0 0 0 3px rgba(7,193,96,.18)}
.link-dot.warn{background:#fff4df}
.link-dot.bad{background:#ffecec}
.link-dot.bad::before{box-shadow:0 0 0 3px rgba(242,92,84,.18)}
.sound-panel{position:fixed;right:16px;top:64px;z-index:30;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.12)}

.agent-quick{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.aq{height:28px;padding:0 12px;border-radius:14px;border:0;color:#fff;font-size:12px;cursor:pointer}
.aq-name{background:#f0a04b}
.aq-addr{background:#5b8def}
.aq-svc{background:#3dbf8a}
.aq-alb{background:#b07be0}
.call-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #f0d0d0;border-radius:8px;padding:6px 10px;color:#e23d3d}
.call-av{background:#f3f3f3;color:#666}

.composer-main{display:flex;gap:10px;align-items:stretch}
.composer-main textarea{flex:1}
.agent-quick{width:168px;display:flex;flex-direction:column;gap:6px;flex:none}
.aq-row{display:flex;gap:6px}
.aq{height:28px;border:0;border-radius:14px;color:#fff;font-size:12px;cursor:pointer;padding:0 8px}
.aq-name{background:#5b8def}
.aq-addr{background:#f0a202;flex:1}
.aq-svc{background:#9b6dff;flex:1}
.aq-alb{background:#2ec4b6;flex:1}
.call-preview{color:#e23d3d}
.call-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #f0d0d0;border-radius:8px;padding:6px 10px;color:#e23d3d}
.call-row{justify-content:center}
.member-av.call-av{background:#f3f3f3;color:#666}
.agent-chip{width:36px;height:36px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none;background:#141414;color:#f3dd9a;font-size:13px}
.agent-chip.on{box-shadow:0 0 0 2px #07c160}
.chip-av,.chip-av img{width:36px;height:36px;border-radius:50%;display:block}
.chip-av{display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:650;background:#3d4c5c}
.chip-av img{object-fit:cover}
body.login-body{margin:0;background:#070b14;overflow:hidden}
.login-sky{position:fixed;inset:0;overflow:hidden;background:#02060f;z-index:0;pointer-events:none}
.login-earth{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.login-body .login-wrapper{position:relative;z-index:2;background:transparent !important;background-image:none !important}
.login-body .login-wrapper::before,.login-body .login-wrapper::after{display:none !important}
.login-body .login-box{background:rgba(10,12,22,.34) !important;border:1px solid rgba(212,176,106,.42) !important;box-shadow:0 24px 60px rgba(0,0,0,.28) !important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f3ead4;width:min(380px, calc(100vw - 32px))}
.login-body .login-box .logo-icon{display:flex !important;width:84px;height:84px;margin:0 auto 8px;background:transparent;box-shadow:none}
.login-body .login-box .logo-icon svg{width:84px;height:84px}
.login-body .login-box .field label{color:#d9c79a}
.login-body .login-box .field input{background:rgba(255,255,255,.16) !important;color:#f6f1e4;border:1px solid rgba(212,176,106,.35) !important}
.login-body .login-box button{background:#c6a15a !important;border-color:#c6a15a !important;color:#1a140c}
html[data-theme="tg"] body,html[data-theme="tg"] .chat-messages,html[data-theme="tg"] .chat-main{background:#d7e8f5}
html[data-theme="tg"] .chat-sidebar{background:#fff}
html[data-theme="tg"] .message-row.right .message-bubble{background:#effdde;color:#191919}
html[data-theme="tg"] .message-row.left .message-bubble{background:#fff;color:#191919}
html[data-theme="tg"] .agent-chip.on,.btn-primary{background:#2aabee;border-color:#2aabee}
html[data-theme="arctic"] body,html[data-theme="arctic"] .chat-messages,html[data-theme="arctic"] .chat-main{background:#e6eef2}
html[data-theme="arctic"] .chat-sidebar{background:#f7fbfc}
html[data-theme="arctic"] .message-row.right .message-bubble{background:#fff;color:#243038}
html[data-theme="arctic"] .message-row.left .message-bubble{background:#d5e4ea;color:#1c2a32}
html[data-theme="arctic"] .agent-chip.on,.btn-primary{background:#6b8f9a;border-color:#6b8f9a}
html[data-theme="dusk"] body,html[data-theme="dusk"] .chat-messages,html[data-theme="dusk"] .chat-main{background:#0e1621}
html[data-theme="dusk"] .chat-sidebar,.dusk .chat-header{background:#17212b;color:#e8eef4}
html[data-theme="dusk"] .chat-sidebar{background:#17212b;color:#e8eef4}
html[data-theme="dusk"] .member-item,.dusk .member-name{color:#e8eef4}
html[data-theme="dusk"] .message-row.right .message-bubble{background:#2b5278;color:#fff}
html[data-theme="dusk"] .message-row.left .message-bubble{background:#182533;color:#e8eef4}
html[data-theme="dusk"] .agent-chip.on,.btn-primary{background:#2aabee;border-color:#2aabee}
@media (max-width:960px){
  body.wx-shell .top-header{display:none !important;height:0 !important;min-height:0 !important;max-height:0 !important;padding:0 !important;overflow:hidden !important}
  body.wx-shell .chat-container{height:calc(100dvh - 58px - env(safe-area-inset-bottom)) !important;margin:0 !important}
  body.wx-shell .chat-sidebar{height:100% !important;min-height:0;background:#fff}
  body.wx-shell .manage-page{height:calc(100dvh - 58px - env(safe-area-inset-bottom)) !important}
  .agent-card{flex-wrap:nowrap;align-items:center;padding:8px 10px;gap:8px;border-radius:12px}
  .agent-list{gap:8px}
  .agent-meta{display:none}
  .agent-line strong{font-size:15px}
  .av-dot{width:40px;height:40px}
  .card-actions{flex-direction:column;gap:4px}
  .card-actions button{padding:2px 8px;font-size:12px}
  .bl-add{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;grid-template-rows:auto auto;gap:6px !important;align-items:center}
  .bl-add .phone{grid-column:1 !important;grid-row:1 !important;width:100% !important;min-width:0 !important}
  .bl-add > button{grid-column:2 !important;grid-row:1 !important;width:auto !important;height:34px !important;padding:0 14px !important;white-space:nowrap}
  .bl-add .reason{grid-column:1 !important;grid-row:2 !important;width:100% !important;min-width:0 !important;flex:none !important}
  .bl-add select{grid-column:2 !important;grid-row:2 !important;width:auto !important;max-width:96px !important;min-width:68px}
  body.chat-open.wx-shell .chat-container{height:100dvh !important;height:100svh !important}
  body.chat-open .chat-main{height:100%;min-height:0}
  body.chat-open .chat-input-area{margin-top:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom)) !important}
  body.chat-open .dock{flex-wrap:nowrap;overflow-x:auto}
}
body.wx-shell .top-header .logo .rail-mark svg{transform:translateX(4px)}
.sound-panel{
  display:none;flex-direction:column;width:min(260px,calc(100vw - 24px));padding:16px 14px 12px;gap:12px;
  position:fixed;right:12px;top:64px;z-index:80;color:#f7f1e6;
  background:
    radial-gradient(140px 70px at 100% 0%, rgba(255,170,90,.35), transparent 70%),
    linear-gradient(165deg, rgba(22,28,44,.94), rgba(7,9,14,.96));
  border:1px solid rgba(255,214,150,.38);border-radius:18px;
  box-shadow:0 22px 48px rgba(0,0,0,.38);backdrop-filter:blur(12px)
}
.sound-title{text-align:center;letter-spacing:.28em;font-size:12px;color:#f3dd9a}
.sound-kinds{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.sound-kinds button{border:1px solid rgba(255,214,150,.32);background:rgba(255,255,255,.05);color:#f6efe2;border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer}
.sound-kinds button.on{background:#e7c56a;color:#1a140c;border-color:#e7c56a}
.sound-vol{display:flex;align-items:center;gap:8px;font-size:12px;color:#e6d3a4}
.sound-vol input{flex:1;accent-color:#e7c56a}
.sound-actions button{flex:1;height:32px;border-radius:999px;border:1px solid rgba(255,214,150,.35);background:transparent;color:#f6efe2;cursor:pointer}
.sound-actions .primary{background:#e7c56a;color:#1a140c;border-color:#e7c56a}
.dock-replies button{display:block;width:100%;text-align:left;margin:0;border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:8px;padding:8px 10px;cursor:pointer}
.msg-img-miss{min-width:140px;min-height:84px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:rgba(0,0,0,.08);color:#666;font-size:12px}
.message-bubble img{max-width:min(240px,70vw);max-height:240px;border-radius:8px;display:block;object-fit:cover}
@media (max-width:960px){
  .chat-sidebar .footer-actions.list-actions{display:flex !important;flex-direction:row;gap:8px;padding:6px 0 8px;background:transparent;border:0}
  .list-actions .btn{flex:1;height:34px;border-radius:17px}
  body.chat-open .dock{overflow:visible;flex-wrap:wrap}
  .dock-pop{z-index:40}
}

/* 界面主题：最后一层，压过微信壳和写死的红黄绿按钮 */
:root,html[data-theme="wechat"]{
  --bg:#ececec;--panel:#f6f6f6;--header:#f3f3f3;--ink:#1a1a1a;--muted:#8a8a8a;--line:#e3e3e3;
  --accent:#07c160;--accent-ink:#fff;--accent-soft:#e5f6ec;--bubble:#fff;--bubble-me:#95ec69;--bubble-me-ink:#17301c;
  --soft:#ececec;--composer:#fff;--card:#fff
}
html[data-theme="tg"]{
  --bg:#e7f2fb;--panel:#f4f9fd;--header:#eef6fc;--ink:#1b2836;--muted:#6d7f90;--line:#d3e4f2;
  --accent:#2aabee;--accent-ink:#fff;--accent-soft:#e3f4fd;--bubble:#fff;--bubble-me:#e7f8d8;--bubble-me-ink:#1b2836;
  --soft:#e3f0fa;--composer:#fff;--card:#fff
}
html[data-theme="arctic"]{
  --bg:#e7eef1;--panel:#f5f8f9;--header:#eef3f5;--ink:#243038;--muted:#6d7c84;--line:#d5e0e4;
  --accent:#5d8490;--accent-ink:#fff;--accent-soft:#e4eef1;--bubble:#fff;--bubble-me:#d7e6eb;--bubble-me-ink:#1c2a32;
  --soft:#e6eef1;--composer:#fff;--card:#f7fbfc
}
html[data-theme="dusk"]{
  --bg:#0e1621;--panel:#17212b;--header:#17212b;--ink:#e7eef6;--muted:#8b9bb0;--line:#2a3d50;
  --accent:#4aa3e0;--accent-ink:#fff;--accent-soft:#1c3348;--bubble:#182533;--bubble-me:#2b5278;--bubble-me-ink:#fff;
  --soft:#1c2c3a;--composer:#1b2a38;--card:#17212b
}
html[data-theme="eye"],html[data-theme="ocean"]{
  --bg:#dcecd7;--panel:#eef6ea;--header:#e7f2e2;--ink:#243528;--muted:#5f7364;--line:#c5dcc0;
  --accent:#3f8f55;--accent-ink:#fff;--accent-soft:#d5ead4;--bubble:#f7fbf4;--bubble-me:#c6e2b8;--bubble-me-ink:#1e3322;
  --soft:#e3f0de;--composer:#f4faf1;--card:#f3f8ef
}
html[data-theme="silk"]{
  --bg:#f3ece1;--panel:#faf6ef;--header:#f6f0e6;--ink:#3a2e24;--muted:#8a7968;--line:#e6d9c8;
  --accent:#a67c52;--accent-ink:#fff;--accent-soft:#f3e6d4;--bubble:#fffdf8;--bubble-me:#f0ddc4;--bubble-me-ink:#3a2e24;
  --soft:#f3eadf;--composer:#fffdf8;--card:#fffdf8
}
html[data-theme="night"]{
  --bg:#141414;--panel:#1c1c1c;--header:#1a1a1a;--ink:#eeeae4;--muted:#9a948c;--line:#2e2e2e;
  --accent:#3d9a62;--accent-ink:#fff;--accent-soft:#24382c;--bubble:#262626;--bubble-me:#245c38;--bubble-me-ink:#f4fff6;
  --soft:#242424;--composer:#222;--card:#1e1e1e
}
html[data-theme] body,
html[data-theme] body.wx-shell,
html[data-theme] .chat-container,
html[data-theme] body.wx-shell .chat-container,
html[data-theme] .chat-main,
html[data-theme] .chat-messages,
html[data-theme] .chat-input-area,
html[data-theme] .quick-btns,
html[data-theme] .manage-page,
html[data-theme] body.wx-shell .manage-page{
  background:var(--bg) !important;color:var(--ink)
}
html[data-theme] .chat-sidebar,
html[data-theme] body.wx-shell .chat-sidebar,
html[data-theme] #memberList,
html[data-theme] .chat-sidebar .footer-actions,
html[data-theme] .list-tools{
  background:var(--panel) !important;color:var(--ink)
}
html[data-theme] .chat-header,
html[data-theme] body.wx-shell .chat-header{
  background:var(--header) !important;color:var(--ink);border-bottom:1px solid var(--line) !important
}
html[data-theme] body.wx-shell #currentMember,
html[data-theme] .chat-sidebar .member-item .member-name,
html[data-theme] .chat-sidebar .member-group-name,
html[data-theme] .chat-sidebar .member-group-name b,
html[data-theme] .manage-head h1,
html[data-theme] .agent-line strong,
html[data-theme] .card-title{color:var(--ink) !important}
html[data-theme] body.wx-shell #chatWith,
html[data-theme] .member-preview,
html[data-theme] .group-phone,
html[data-theme] .member-time,
html[data-theme] .manage-head p{color:var(--muted) !important}
html[data-theme] .member-group-header{
  background:var(--soft) !important;color:var(--ink) !important;border-bottom:1px solid var(--line) !important
}
html[data-theme] .chat-sidebar .member-item{border-bottom-color:var(--line);background:transparent}
html[data-theme] .chat-sidebar .member-item:hover,
html[data-theme] .chat-sidebar .member-item.active{background:var(--soft) !important}
html[data-theme] .message-row.left .message-bubble,
html[data-theme] body.wx-shell .message-row.left .message-bubble{
  background:var(--bubble) !important;color:var(--ink) !important
}
html[data-theme] .message-row.right .message-bubble,
html[data-theme] body.wx-shell .message-row.right .message-bubble{
  background:var(--bubble-me) !important;color:var(--bubble-me-ink) !important
}
html[data-theme] .composer{
  background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important
}
html[data-theme] .composer textarea,
html[data-theme] #memberSearch,
html[data-theme] .dock-btn{
  background:var(--composer) !important;color:var(--ink) !important;border:1px solid var(--line) !important
}
html[data-theme] .dock-name{background:var(--accent-soft) !important;color:var(--accent) !important;border-color:transparent !important}
html[data-theme] .tool-pic,
html[data-theme] .tool-tr{
  background:var(--accent-soft) !important;color:var(--accent) !important;border:1px solid var(--line) !important
}
html[data-theme] .composer .send-btn,
html[data-theme] .btn-primary,
html[data-theme] .list-actions .btn-primary,
html[data-theme] .bl-add > button,
html[data-theme] .chip.on,
html[data-theme] .agent-chip.on{
  background:var(--accent) !important;border-color:var(--accent) !important;color:var(--accent-ink) !important;
  box-shadow:none !important
}
html[data-theme] .agent-chip.on{box-shadow:0 0 0 2px var(--accent) !important}
html[data-theme] .tool-pic:disabled,
html[data-theme] .tool-tr:disabled,
html[data-theme] .composer .send-btn:disabled{
  background:var(--soft) !important;color:var(--muted) !important;border-color:var(--line) !important
}
html[data-theme] .list-actions .btn,
html[data-theme] .card,
html[data-theme] .modal,
html[data-theme] .agent-card,
html[data-theme] .bl-card,
html[data-theme] .bl-add,
html[data-theme] .empty-note,
html[data-theme] .data-table,
html[data-theme] .call-card,
html[data-theme] .pref-panel{
  background:var(--card) !important;color:var(--ink);border-color:var(--line)
}
html[data-theme] .data-table th,
html[data-theme] .data-table thead{background:var(--soft) !important;color:var(--muted) !important}
html[data-theme] .data-table td{color:var(--ink);border-color:var(--line)}
html[data-theme] .card-actions button,
html[data-theme] .chip,
html[data-theme] .pager button,
html[data-theme] .bl-add input,
html[data-theme] .bl-add select,
html[data-theme] .manage-search input{
  background:var(--soft);color:var(--ink);border-color:var(--line)
}
html[data-theme] .mobile-tab{background:var(--panel);border-color:var(--line)}
html[data-theme] .mobile-tab a{color:var(--muted)}
html[data-theme] .mobile-tab a.on{color:var(--accent)}
.pref-panel{width:min(320px,calc(100vw - 96px));padding:14px;border-radius:16px;box-sizing:border-box;overflow:visible}
.pref-head{font-size:12px;font-weight:650;letter-spacing:.12em;color:var(--muted,#888);margin:2px 0 0}
.pref-panel .theme-swatches{margin-bottom:4px}
.pref-panel label.vol-row{flex-direction:row;align-items:center;gap:8px;width:100%;box-sizing:border-box}
.pref-panel label.vol-row .vol-range{width:auto !important;flex:1 1 auto;min-width:0;margin:0;accent-color:var(--accent,#07c160)}
.vol-range{width:auto}
.vol-num{min-width:2.4em;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink,#222);font-style:normal}
.sound-kinds{display:flex;flex-wrap:wrap;gap:6px}
.sound-kinds button,.theme-swatches button,.sound-actions button{
  border:1px solid var(--line,#e6e2dc);background:var(--soft,#f6f6f6);color:var(--ink,#222);
  border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer
}
.theme-swatches button.on,.sound-kinds button.on,.sound-actions .primary{
  background:var(--accent,#07c160);color:var(--accent-ink,#fff);border-color:var(--accent,#07c160)
}
.sound-actions{display:flex;gap:8px}
.sound-actions button{flex:1;height:32px}
.group-grip{display:none;align-items:center;color:var(--muted,#999);font-size:13px;letter-spacing:-2px;flex:none;cursor:grab}
@media (min-width:961px){
  .group-grip{display:inline-flex}
  .member-group-header{cursor:grab}
  .member-group-header:active{cursor:grabbing}
  .member-group.dragging{opacity:.45}
  .member-group.drag-over > .member-group-header{box-shadow:inset 0 3px 0 var(--accent,#07c160)}
  body.wx-shell #wsStatus{font-size:12px !important;color:inherit}
}
html[data-theme] .link-dot{background:var(--soft);color:var(--muted)}
html[data-theme] .link-dot.ok{background:var(--accent-soft);color:var(--accent)}
html[data-theme] .link-dot.bad{background:#ffecec;color:#c43737}
html[data-theme="night"] .link-dot.bad,html[data-theme="dusk"] .link-dot.bad{background:#3a2424;color:#ffb4b4}
#soundPanel,#soundToggle{display:none !important}
html[data-theme] .btn.btn-primary,
html[data-theme] .list-actions .btn.btn-primary,
html[data-theme] .composer .send-btn,
html[data-theme] .bl-add > button{
  background:var(--accent) !important;color:var(--accent-ink) !important;border-color:var(--accent) !important
}
html[data-theme] .pref-panel,
html[data-theme] .pref-panel label{color:var(--ink)}
html[data-theme] .pref-head{color:var(--muted)}

/* 滚动条跟主题，不再用系统白条 */
html{scrollbar-width:thin;scrollbar-color:rgba(90,90,90,.45) transparent}
html[data-theme="night"],html[data-theme="dusk"]{scrollbar-color:rgba(210,210,210,.32) transparent}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgba(90,90,90,.38);border-radius:8px}
*::-webkit-scrollbar-thumb:hover{background:rgba(90,90,90,.62)}
html[data-theme="night"] *::-webkit-scrollbar-thumb,
html[data-theme="dusk"] *::-webkit-scrollbar-thumb{background:rgba(220,220,220,.28)}
html[data-theme="night"] *::-webkit-scrollbar-thumb:hover,
html[data-theme="dusk"] *::-webkit-scrollbar-thumb:hover{background:rgba(220,220,220,.5)}
*::-webkit-scrollbar-corner{background:transparent}

/* 会话时间贴齐右边 */
.chat-sidebar .member-item .member-name{display:flex !important;align-items:center;width:100%;min-width:0;gap:6px}
.chat-sidebar .member-item .member-id{flex:1 1 auto;min-width:0}
.member-time{margin-left:auto !important;flex:none !important;font-variant-numeric:tabular-nums}
.ring-badge{margin-left:6px !important;flex:none}

/* 输入框加大，图片 / 翻译 / 发送收进框内底部 */
html[data-theme] .composer{
  display:flex !important;flex-direction:column !important;align-items:stretch !important;
  gap:8px !important;background:transparent !important;border:0 !important;padding:0 !important;box-shadow:none !important
}
html[data-theme] .composer textarea{
  min-height:118px !important;max-height:220px !important;
  background:var(--composer) !important;color:var(--ink) !important;
  border:1px solid var(--line) !important;border-bottom:0 !important;
  border-radius:12px 12px 0 0 !important;padding:12px 12px 6px !important;box-shadow:none !important
}
html[data-theme] .composer-tools{
  display:flex !important;justify-content:flex-end !important;align-items:center;gap:8px;
  margin-top:-8px !important;padding:0 10px 10px !important;
  background:var(--composer) !important;border:1px solid var(--line) !important;border-top:0 !important;
  border-radius:0 0 12px 12px !important
}

/* 左侧导航：同一套线标，颜色跟主题 */
html[data-theme="wechat"]{--rail:#20241f;--rail-ink:#d7ddd8}
html[data-theme="tg"]{--rail:#163044;--rail-ink:#d5e7f6}
html[data-theme="arctic"]{--rail:#243238;--rail-ink:#d7e4e8}
html[data-theme="dusk"]{--rail:#0c141d;--rail-ink:#c9d7e6}
html[data-theme="eye"],html[data-theme="ocean"]{--rail:#243528;--rail-ink:#d9ead9}
html[data-theme="silk"]{--rail:#3a2e24;--rail-ink:#f3e6d4}
html[data-theme="night"]{--rail:#101010;--rail-ink:#cfc8be}
a[href$="/chat"]{--nav-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M5 5.2h14c.9 0 1.6.7 1.6 1.6v7.2c0 .9-.7 1.6-1.6 1.6H9.1L5 19.4V6.8c0-.9.7-1.6 1.6-1.6z'/></svg>")}
a[href*="/admin/agents"]{--nav-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 12.4a3.2 3.2 0 1 0 0-6.4 3.2 3.2 0 0 0 0 6.4zM6.1 19c.5-2.7 2.7-4.2 5.9-4.2s5.4 1.5 5.9 4.2c.1.6-.4 1.1-1 1.1H7.1c-.6 0-1.1-.5-1-1.1z'/></svg>")}
a[href*="/blacklist"]{--nav-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M8 6.2h11.2v1.7H8zM8 11.15h11.2v1.7H8zM8 16.1h11.2v1.7H8zM4.2 6.2h1.8v1.7H4.2zM4.2 11.15h1.8v1.7H4.2zM4.2 16.1h1.8v1.7H4.2z'/></svg>")}
a[href*="/admin/users"]{--nav-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 11.4a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm6.5.3a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM4.6 18.6c.4-2.2 2.1-3.5 4.4-3.5s4 1.3 4.4 3.5H4.6zm8.5 0c.2-1.4 1.2-2.4 2.6-2.9 1.1.4 2 1.3 2.3 2.9h-4.9z'/></svg>")}
a[href*="/account/settings"]{--nav-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' fill-rule='evenodd' d='M12 2.8 13.3 5l2.2.3-.5 2.1 1.7 1.5-1.7 1.5.5 2.1-2.2.3L12 15.1l-1.3-2.3-2.2-.3.5-2.1L7.3 8.9 9 7.4l-.5-2.1 2.2-.3L12 2.8zm0 6.2a3 3 0 1 1 0 6 3 3 0 0 1 0-6z'/></svg>")}
body.wx-shell .top-header .nav-menu a .nav-ico,
.mobile-tab a b{
  font-size:0 !important;width:22px;height:22px;display:block;
  background:currentColor;
  -webkit-mask:var(--nav-mask) center / 20px 20px no-repeat;
  mask:var(--nav-mask) center / 20px 20px no-repeat
}
@media (min-width:961px){
  html[data-theme] body.wx-shell .top-header{background:var(--rail) !important;color:var(--rail-ink)}
  html[data-theme] body.wx-shell .top-header .nav-menu a{
    color:var(--rail-ink) !important;width:56px;margin:2px auto;border-radius:14px;padding:8px 0
  }
  html[data-theme] body.wx-shell .top-header .nav-menu a.active{
    color:var(--accent) !important;background:color-mix(in srgb, var(--accent) 22%, transparent)
  }
  html[data-theme] body.wx-shell .user-info > a::before{
    content:"" !important;width:20px;height:20px;display:block;font-size:0;
    background:currentColor;
    -webkit-mask:var(--nav-mask) center / 18px 18px no-repeat;
    mask:var(--nav-mask) center / 18px 18px no-repeat
  }
  html[data-theme] body.wx-shell .pref-btn{color:var(--rail-ink);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}
}
html[data-theme] .mobile-tab a.on,html[data-theme] .mobile-tab a.active{color:var(--accent) !important}
html[data-theme] .agent-chip.on.folded{
  background:transparent !important;color:var(--accent) !important;
  box-shadow:inset 0 0 0 2px var(--accent) !important
}

/* 账号设置跟着主题 */
html[data-theme] .settings-card{
  background:var(--card) !important;color:var(--ink) !important;border:1px solid var(--line) !important;
  box-shadow:none !important;backdrop-filter:none
}
html[data-theme] .settings-header{border-bottom-color:var(--line)}
html[data-theme] .settings-header .info h3,html[data-theme] .settings-card .section-title{color:var(--ink) !important}
html[data-theme] .settings-header .info p{color:var(--muted) !important}
html[data-theme] .settings-avatar{background:var(--accent) !important;box-shadow:none !important;color:var(--accent-ink) !important}
html[data-theme] .settings-card .form-section{
  background:var(--soft) !important;border:1px solid var(--line) !important;color:var(--ink);backdrop-filter:none
}
html[data-theme] .settings-card .form-group label{color:var(--muted) !important}
html[data-theme] .settings-card .form-group input{
  background:var(--composer) !important;color:var(--ink) !important;border:1px solid var(--line) !important
}
html[data-theme] .settings-card .form-group input::placeholder{color:var(--muted)}
html[data-theme] .settings-card .btn:not(.btn-primary){
  background:var(--soft) !important;color:var(--ink) !important;border:1px solid var(--line) !important
}

/* 底部技师条：不随列表滚走。悬停气泡无延迟 */
.agent-dock{
  flex:none;display:flex;gap:10px;align-items:center;
  overflow-x:auto;overflow-y:hidden;
  padding:8px 12px 10px;min-height:62px;
  border-top:1px solid var(--line,#e6e6e6);
  background:var(--card,#fff)
}
.agent-dock::-webkit-scrollbar{height:0}
.dock-av{
  position:relative;width:44px;height:44px;padding:0;border:0;border-radius:50%;
  flex:none;cursor:pointer;background:transparent
}
.dock-face,.dock-face img{
  width:44px;height:44px;border-radius:50%;display:block;object-fit:cover
}
.dock-face{
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:16px;font-weight:650;background:#3d4c5c
}
.dock-av.on .dock-face{box-shadow:0 0 0 2px var(--accent,#07c160)}
.dock-av.dock-hot .dock-face{box-shadow:0 0 0 2px #f25c54}
.dock-badge{
  position:absolute;top:-3px;right:-4px;min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:#f25c54;color:#fff;font-style:normal;font-size:10px;
  display:flex;align-items:center;justify-content:center;font-weight:700;z-index:1
}
.dock-tip{
  position:fixed;z-index:80;display:none;transform:translate(-50%,-100%);
  pointer-events:none;padding:6px 10px;border-radius:10px;
  background:rgba(28,28,28,.94);color:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.22);white-space:nowrap;text-align:center
}
.dock-tip.on{display:block}
.dock-tip b{display:block;font-size:13px;font-weight:650;line-height:1.3}
.dock-tip span{display:block;margin-top:1px;font-size:11px;color:rgba(255,255,255,.72)}
.dock-tip:after{
  content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;
  border:5px solid transparent;border-top-color:rgba(28,28,28,.94);border-bottom:0
}

/* 导航飞机：居中、放大、亮描边。颜色由 --plane 决定，点击切换 */
@media (min-width:961px){
  body.wx-shell .logo{
    width:100%;display:flex;justify-content:center;align-items:center;
    margin:6px 0 10px;padding:0
  }
  body.wx-shell .top-header .logo .rail-mark{
    width:52px;height:52px;margin:0;padding:0;cursor:pointer;
    background:transparent !important;border:0 !important;border-radius:0 !important;
    box-shadow:none !important;overflow:visible;transform:none !important
  }
  body.wx-shell .top-header .logo .rail-mark svg{
    width:52px;height:52px;display:block;overflow:visible;transform:none !important
  }
  body.wx-shell .rail-mark rect{display:none}
  body.wx-shell .rail-mark .plane-body,
  body.wx-shell .rail-mark .plane-fold{
    fill:none !important;stroke:var(--plane,#f0c14a) !important;stroke-width:1.7;
    filter:none;animation:none
  }
  body.wx-shell .rail-mark .plane-edge{
    fill:none !important;stroke:var(--plane,#f0c14a) !important;stroke-width:2;
    animation:plane-glow-theme 1.6s ease-in-out infinite
  }
  body.wx-shell .rail-mark .plane-light{
    fill:none !important;stroke:#fff !important;stroke-width:2.4;opacity:1;
    stroke-dasharray:18 72;
    filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px var(--plane,#f0c14a));
    animation:plane-run 1.35s linear infinite
  }
}
@keyframes plane-glow-theme{
  0%,100%{filter:drop-shadow(0 0 1px var(--plane,#f0c14a))}
  50%{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 10px var(--plane,#f0c14a))}
}

/* 底部主题、设置同一套方块。设置只显示两个字，不再叠齿轮 */
@media (min-width:961px){
  html[data-theme] body.wx-shell .user-info{
    width:100% !important;margin-top:auto !important;padding:8px 0 14px !important;gap:8px !important;
    align-items:center !important;background:transparent !important;border:0 !important;
    border-radius:0 !important;box-shadow:none !important
  }
  html[data-theme] body.wx-shell .pref-btn,
  html[data-theme] body.wx-shell .user-info > a{
    width:48px !important;height:48px !important;min-height:48px !important;padding:0 !important;
    border-radius:14px !important;display:flex !important;align-items:center;justify-content:center;
    font-size:12px !important;letter-spacing:.04em;line-height:1;
    color:var(--rail-ink) !important;
    background:color-mix(in srgb, var(--accent) 14%, transparent) !important;
    border:1px solid color-mix(in srgb, var(--accent) 48%, transparent) !important;
    box-shadow:none !important
  }
  html[data-theme] body.wx-shell .user-info > a{
    font-size:0 !important
  }
  html[data-theme] body.wx-shell .pref-btn:hover,
  html[data-theme] body.wx-shell .user-info > a:hover{
    color:var(--accent) !important;
    background:color-mix(in srgb, var(--accent) 26%, transparent) !important
  }
  html[data-theme] body.wx-shell .user-info > a::before{
    content:"设置" !important;width:auto;height:auto;display:block;
    font-size:12px !important;letter-spacing:.04em;line-height:1;
    background:none !important;-webkit-mask:none !important;mask:none !important
  }
}

