/* === KYYT 三主题系统 === */
.sidebar{width:200px!important}
.sidebar-nav a{display:flex!important;align-items:center;gap:8px!important;padding:12px 16px!important;font-size:15px!important;text-decoration:none}
/* logo 遮罩，颜色跟随 .sidebar-brand */
.nav-logo{width:32px;height:32px;flex-shrink:0;display:inline-block;background-color:currentColor!important;mask-size:contain!important;-webkit-mask-size:contain!important;mask-repeat:no-repeat!important;-webkit-mask-repeat:no-repeat!important;mask-position:center!important;-webkit-mask-position:center!important}

/* === 基础结构CSS（原在每个页面重复，现统一到此处） === */
:root{--tblr-primary:#206bc4}
body{background:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;font-size:16px}
.wrapper{display:flex;height:100vh;overflow:hidden}
.sidebar{width:200px;background:#1e293b;color:#e2e8f0;flex-shrink:0;display:flex;flex-direction:column}
.sidebar-brand{padding:16px 20px;font-size:20px;font-weight:700;color:#fff;border-bottom:1px solid #334155;text-decoration:none;display:block}
.sidebar-nav{flex:1;padding:12px 0}
.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:12px 20px;color:#94a3b8;text-decoration:none;font-size:15px;border-left:3px solid transparent;transition:.15s}
.sidebar-nav a:hover{color:#e2e8f0;background:rgba(255,255,255,.05)}
.sidebar-nav a.active{color:#fff;background:rgba(32,107,196,.25);border-left-color:#206bc4}
.main{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{background:#fff;padding:10px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}
.content{flex:1;padding:12px;overflow-y:auto;min-height:0}
.cols{display:flex;flex:1;gap:10px;min-height:0}
.panel{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.06);min-height:0;overflow:hidden}
.panel-head{padding:10px 14px;border-bottom:1px solid #e2e8f0;font-weight:600;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;font-size:15px}
.panel-body{flex:1;overflow-y:auto;padding:4px 0}
.toast-msg{position:fixed;top:1rem;right:1rem;z-index:9999;min-width:250px}
.badge.bg-success,.btn-success{color:#fff;font-weight:700}
table th{font-size:12px!important}

/* ========== 天蓝 ========== */
[data-theme="sky"] {
  --bg-body: #f0f7fd;
  --bg-sidebar: #0369a1;
  --bg-card: #ffffff;
  --bg-topbar: #ffffff;
  --bg-input: #f8fafc;
  --bg-hover: rgba(3,105,161,0.06);
  --text-primary: #0f172a;
  --text-secondary: #526477;
  --text-sidebar: #bae6fd;
  --text-sidebar-active: #fff;
  --text-sidebar-hover: #fff;
  --accent: #0284c7;
  --accent-hover: #0369a1;
  --border: #e0e7ef;
  --border-light: #eef2f6;
  --shadow: 0 1px 3px rgba(0,0,0,.06);
  --chat-other: #ffffff;
  --chat-self: #e0f2fe;
  --chat-self-text: #0c4a6e;
  --badge-bg: #0284c7;
  --badge-text: #fff;
  --danger: #dc2626;
  --warning: #d97706;
  --info: #0284c7;
  --sidebar-brand: #fff;
  --scrollbar-thumb: #bae6fd;
  --scrollbar-track: #e0f2fe;
}

/* ========== 公共变量应用 ========== */
[data-theme] body {
  background: var(--bg-body);
  color: var(--text-primary);
}
[data-theme] .sidebar {
  background: var(--bg-sidebar) !important;
  color: var(--text-sidebar) !important;
}
[data-theme] .sidebar-brand {
  color: var(--sidebar-brand) !important;
  border-bottom-color: var(--border) !important;
}
[data-theme] .sidebar-nav a {
  color: var(--text-sidebar) !important;
}
[data-theme] .sidebar-nav a:hover {
  color: var(--text-sidebar-hover) !important;
  background: var(--bg-hover) !important;
}
[data-theme] .sidebar-nav a.active {
  color: var(--text-sidebar-active) !important;
  background: var(--accent) !important;
  border-left-color: var(--accent) !important;
}
[data-theme] .topbar,
[data-theme] header:not(.sidebar-brand) {
  background: var(--bg-topbar) !important;
  border-bottom-color: var(--border) !important;
}
[data-theme] .panel,
[data-theme] .card,
[data-theme] .modal-content,
[data-theme] .info-card {
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
  box-shadow: var(--shadow) !important;
}
[data-theme] .panel-head,
[data-theme] .card-header {
  border-bottom-color: var(--border) !important;
}
[data-theme] .chat-area {
  background: var(--bg-card) !important;
}
[data-theme] .chat-bubble:not(.mine) .chat-bubble,
[data-theme] .chat-msg:not(.mine) .chat-bubble {
  background: var(--chat-other) !important;
}
[data-theme] .chat-msg.mine .chat-bubble {
  background: var(--chat-self) !important;
  color: var(--chat-self-text) !important;
}
[data-theme] .chat-msg.outgoing .chat-bubble {
  background: #fca5a5 !important;
  color: #7f1d1d !important;
}
[data-theme] .chat-bubble .sender {
  color: var(--text-secondary) !important;
}
[data-theme] .chat-input {
  background: var(--bg-card) !important;
  border-top-color: var(--border) !important;
}
[data-theme] .chat-input textarea {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}
[data-theme] .form-control,
[data-theme] .form-select {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}
[data-theme] .form-control:focus,
[data-theme] .form-select:focus {
  border-color: var(--accent) !important;
}
[data-theme] .btn-primary {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
}
[data-theme] .btn-primary:hover {
  background: var(--accent-hover) !important;
}
[data-theme] .count-badge {
  background: var(--badge-bg) !important;
  color: var(--badge-text) !important;
}
[data-theme] .text-muted {
  color: var(--text-secondary) !important;
}
[data-theme] table th,
[data-theme] .card-table thead th,
[data-theme] .card-table tbody td {
  color: var(--text-secondary) !important;
}
[data-theme] .card-table thead th {
  background: var(--bg-sidebar) !important;
  border-color: var(--border) !important;
}
[data-theme] .client-item.selected .client-info .name,
[data-theme] .client-item.selected .client-info .ip { color: #fff !important; }
[data-theme] .conv-item.selected {
  background: var(--accent) !important;
  border-left-color: var(--accent) !important;
  color: #fff !important;
}
[data-theme] .conv-item.selected .cname,
[data-theme] .conv-item.selected .cpreview,
[data-theme] .conv-item.selected .ctime { color: #fff !important; }
[data-theme] .nav-tabs .nav-link.active {
  color: var(--accent) !important;
  border-color: var(--accent) !important;
}
[data-theme] .nav-tabs {
  border-bottom-color: var(--border) !important;
  background: var(--bg-body) !important;
}
[data-theme] .tab-content {
  background: var(--bg-card) !important;
}
[data-theme] .card-header-tabs {
  background: transparent !important;
}
[data-theme] .badge.bg-success {
  background: var(--badge-bg) !important;
  color: var(--badge-text) !important;
}
[data-theme] .badge.bg-primary {
  background: var(--accent) !important;
  color: #fff !important;
}
[data-theme] .badge.bg-danger {
  background: var(--danger) !important;
  color: #fff !important;
}
[data-theme] .badge.bg-warning {
  background: var(--warning) !important;
  color: #000 !important;
}
[data-theme] .badge.bg-info {
  background: var(--info) !important;
  color: #fff !important;
}
[data-theme] .btn-outline-success {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}
[data-theme] .btn-outline-success:hover {
  background: var(--accent) !important;
  color: #fff !important;
}
[data-theme] .badge-client-ai {
  background: var(--bg-input) !important;
  color: var(--accent) !important;
}
[data-theme] .badge-client-status.online {
  background: var(--accent) !important;
  color: #fff !important;
}
[data-theme] .badge-client-status.offline {
  background: transparent !important;
  color: var(--text-secondary) !important;
  border: 1px solid var(--border) !important;
}
[data-theme] .badge-client-status.disconnected {
  background: #fbbf24 !important;
  color: #78350f !important;
}
[data-theme] .table {
  color: var(--text-primary) !important;
}
[data-theme] .table-hover tbody tr:hover {
  background: var(--bg-hover) !important;
}
[data-theme] .modal-header {
  border-bottom-color: var(--border) !important;
  background: var(--bg-card) !important;
}
[data-theme] .modal-footer {
  border-top-color: var(--border) !important;
  background: var(--bg-card) !important;
}
[data-theme] .modal-body {
  background: var(--bg-card) !important;
}
[data-theme] .table-responsive {
  background: var(--bg-card) !important;
}
[data-theme] .btn-outline-secondary {
  border-color: var(--border) !important;
  color: var(--text-secondary) !important;
}
[data-theme] .btn-outline-secondary:hover {
  background: var(--bg-hover) !important;
  color: var(--text-primary) !important;
}
[data-theme] code {
  background: var(--bg-input) !important;
  color: var(--accent) !important;
}
[data-theme] .hist-item,
[data-theme] .pend-item {
  border-bottom-color: var(--border-light) !important;
}
[data-theme] .hist-item:hover,
[data-theme] .pend-item:hover {
  background: var(--bg-hover) !important;
}
[data-theme] .hist-item.selected,
[data-theme] .pend-item.selected {
  background: var(--accent) !important;
  border-left-color: var(--accent) !important;
  color: #fff !important;
}
[data-theme] .hist-item.selected .cname,
[data-theme] .hist-item.selected .cpreview,
[data-theme] .hist-item.selected .ctime,
[data-theme] .hist-item.selected .status-badge,
[data-theme] .pend-item.selected .pname,
[data-theme] .pend-item.selected .ppreview,
[data-theme] .pend-item.selected .ptime { color: #fff !important; }
[data-theme] .detail-chat {
  background: var(--bg-card) !important;
}
[data-theme] .detail-footer {
  background: var(--bg-card) !important;
  border-top-color: var(--border) !important;
}
[data-theme] .detail-footer textarea {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}
[data-theme] .type-badge:hover,
[data-theme] .nav-tabs .nav-link:hover {
  color: var(--accent) !important;
}
[data-theme] .pipe-body {
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
}
[data-theme] .pipe-body h4 {
  color: var(--text-primary) !important;
}
[data-theme] input, [data-theme] select, [data-theme] textarea {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}

/* 滚动条 */
[data-theme] ::-webkit-scrollbar { width: 6px; }
[data-theme] ::-webkit-scrollbar-track { background: var(--scrollbar-track); }
[data-theme] ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 3px; }

/* EasyMDE 编辑器 */
[data-theme] .EasyMDEContainer .CodeMirror {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}
[data-theme] .editor-toolbar {
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
}
[data-theme] .editor-toolbar button { color: var(--text-secondary) !important; }
[data-theme] .editor-toolbar button:hover,
[data-theme] .editor-toolbar button.active {
  background: var(--bg-hover) !important;
  color: var(--accent) !important;
}
[data-theme] .editor-toolbar i.separator { border-left-color: var(--border) !important; }

/* 仪表盘统计卡片 */
[data-theme] .stats-card { background: var(--bg-card) !important; }

/* 表格 */
[data-theme] .table { color: var(--text-primary) !important; }
[data-theme] .table thead th,
[data-theme] .table th,
[data-theme] th { background: var(--bg-sidebar) !important; color: var(--text-secondary) !important; border-color: var(--border) !important; }
[data-theme] .table td,
[data-theme] td { border-color: var(--border-light) !important; color: var(--text-primary) !important; }
[data-theme] .table-hover tbody tr:hover { background: var(--bg-hover) !important; }
[data-theme] .table-bordered,
[data-theme] .table-bordered th,
[data-theme] .table-bordered td { border-color: var(--border) !important; }

/* 页签激活态 */
[data-theme] .nav-tabs .nav-link.active {
  color: var(--accent) !important;
  background: var(--bg-card) !important;
  border-color: var(--border) var(--border) var(--bg-card) !important;
}
[data-theme] .nav-tabs .nav-link { color: var(--text-secondary) !important; }
[data-theme] .nav-tabs .nav-link:hover { color: var(--accent) !important; }
[data-theme] .tab-btn { color: var(--text-secondary) !important; }
[data-theme] .tab-btn.active { color: var(--accent) !important; border-bottom-color: var(--accent) !important; }

/* 下拉菜单 */
[data-theme] .dropdown-menu { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme] .dropdown-item { color: var(--text-primary) !important; }
[data-theme] .dropdown-item:hover { background: var(--bg-hover) !important; }

/* 卡片内部文字 */
[data-theme] .card,
[data-theme] .card-header,
[data-theme] .card-body { color: var(--text-primary) !important; }

/* 侧边栏底部栏 */
[data-theme] .sidebar > div[style*="border-top"] { border-top-color: var(--border) !important; }

/* 全局input覆盖 */
[data-theme] input:not(.form-check-input),
[data-theme] select,
[data-theme] textarea {
  background: var(--bg-input) !important;
  color: var(--text-primary) !important;
  border-color: var(--border) !important;
}
[data-theme] input::placeholder,
[data-theme] textarea::placeholder { color: var(--text-secondary) !important; }

/* html/body 背景 */
[data-theme] html { background: var(--bg-body) !important; }

/* 接管未覆盖的白色区域 */
[data-theme] .main,
[data-theme] .content { background: var(--bg-body) !important; }

/* 审核状态徽标 */
[data-theme] .status-badge.ok { background: rgba(7,193,96,0.2) !important; color: #07c160 !important; }
[data-theme] .status-badge.no { background: rgba(250,81,81,0.2) !important; color: #fa5151 !important; }

/* 设置页覆盖提示条 */
[data-theme] .override-bar { background: rgba(245,158,0,0.12) !important; border-color: rgba(245,158,0,0.3) !important; color: var(--text-primary) !important; }

/* 客户头像圆圈 */
[data-theme] .avatar-circle { background: var(--accent) !important; color: #fff !important; }

/* 设置页表单标签 */
[data-theme] .row-cfg label { color: var(--text-secondary) !important; }
[data-theme] .settings-form-box { background: var(--bg-input) !important; border-radius: 6px; }

/* 设置页提示文字 */
[data-theme] .field-hint { color: var(--text-secondary) !important; }

/* 审批按钮 */
[data-theme] .btn-approve { background: var(--accent) !important; }
[data-theme] .btn-approve:hover { background: var(--accent-hover) !important; }

/* 审核详情回复区 */
[data-theme] .review-reply-section { border-top-color: var(--border) !important; }
[data-theme] .review-reply-box { background: var(--bg-input) !important; color: var(--text-primary) !important; }

/* 审核详情分页栏 */
[data-theme] .pager-bar { border-top-color: var(--border) !important; }

/* 登录页 */
[data-theme] .login-box { background: var(--bg-card) !important; box-shadow: var(--shadow) !important; }
[data-theme] .login-box h2 { color: var(--text-primary) !important; }
[data-theme] .login-box .form-label { color: var(--text-secondary) !important; }

/* 消息中心 - 客户端列表 */
[data-theme] .client-item { border-bottom-color: var(--border-light) !important; }
[data-theme] .client-item:hover { background: var(--bg-hover) !important; }
[data-theme] .client-item.offline { background: transparent !important; }
[data-theme] .client-item.offline .client-info .name { color: var(--text-secondary) !important; }
[data-theme] .conv-item.has-unread { background: rgba(7,193,96,0.06) !important; }
/* selected 必须在 offline 之后，确保选中态覆盖离线态 */
[data-theme] .client-item.selected,
[data-theme] .client-item.offline.selected { background: var(--accent) !important; color: #fff !important; }
[data-theme] tr.client-offline { background: transparent !important; }
[data-theme] tr.client-offline td { color: var(--text-secondary) !important; }
[data-theme] .client-avatar { background: var(--bg-input) !important; color: var(--text-secondary) !important; }
[data-theme] .client-info .ip { color: var(--text-secondary) !important; }
[data-theme] .client-avatar-wrap::after { border-color: var(--bg-card, #fff) !important; }

/* 消息中心 - 会话列表 */
[data-theme] .conv-item { border-bottom-color: var(--border-light) !important; }
[data-theme] .conv-item:hover { background: var(--bg-hover) !important; }
[data-theme] .conv-item .cpreview { color: var(--text-secondary) !important; }
[data-theme] .conv-item .ctime { color: var(--text-secondary) !important; }

/* 消息中心 - 聊天区 */
[data-theme] .chat-header { background: var(--bg-card) !important; border-bottom-color: var(--border) !important; color: var(--text-primary) !important; }
[data-theme] .chat-bubble .time { color: var(--text-secondary) !important; }
[data-theme] .chat-msg:not(.mine) .chat-bubble { background: var(--chat-other) !important; color: var(--text-primary) !important; }
[data-theme] .chat-bubble .sender,
[data-theme] .chat-bubble .content,
[data-theme] .chat-bubble .time { background: transparent !important; }
[data-theme] .empty-center { color: var(--text-secondary) !important; }

/* 审核详情-聊天区 */
[data-theme] .detail-header { background: var(--bg-card) !important; border-bottom-color: var(--border) !important; color: var(--text-primary) !important; }

/* 页签/类型徽标 */
[data-theme] .type-badge { color: var(--text-secondary) !important; }
[data-theme] .type-badge.active,
[data-theme] .type-badge:hover { color: var(--accent) !important; }

/* info-card（流程页） */
[data-theme] .info-card .card-header { background: var(--bg-card) !important; }
[data-theme] .info-card table th { background: var(--bg-sidebar) !important; }

/* 客户行hover */
[data-theme] .customer-row:hover { background: var(--bg-hover) !important; }

/* 管理页tabs */
[data-theme] .tabs { border-bottom-color: var(--border) !important; }

/* 管理页分配客户端复选框 */
[data-theme] .form-check-input:checked {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
}
[data-theme] .form-check-input:checked + .form-check-label {
  color: var(--accent) !important;
  font-weight: 600 !important;
}

/* 统计卡片 */
[data-theme] .stat { background: var(--bg-card) !important; box-shadow: var(--shadow) !important; }

/* layout.html */
[data-theme] .header { background: var(--bg-card) !important; box-shadow: var(--shadow) !important; }

/* 回访管理 */
[data-theme] .cfg-bar { border-bottom-color: var(--border) !important; }
[data-theme] .cfg-bar label { color: var(--text-secondary) !important; }
[data-theme] .cfg-bar .cfg-hint { color: var(--text-secondary) !important; }
[data-theme] #recordPager { border-top-color: var(--border) !important; }

/* ===== 天蓝主题专属覆盖（必须在最后） ===== */
[data-theme="sky"] table th,
[data-theme="sky"] .table thead th,
[data-theme="sky"] .card-table thead th { color: #fff !important; }
