/* ============================================================
   墨色主题 · 登入界面 + 后台
   取色与质感取自站点头像那张水墨图：近白宣纸 + 纯黑浓墨 + 一点朱红印
   只作用于登入页与后台管理，聊天区/客服工作台保持平台原样
   ============================================================ */

:root {
  --ink: #111110;
  --ink-2: #2e2e2b;
  --ink-3: #6e6e69;
  --ink-4: #a2a29c;
  --line: rgba(17, 17, 16, 0.14);
  --line-2: rgba(17, 17, 16, 0.075);
  --paper: #fafaf8;
  --paper-2: #fffffe;
  --paper-3: #f3f3f0;
  --seal: #b3271d;
  --seal-2: #c8483c;
  --font-ink: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  --font-sys: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='4' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23g)' opacity='0.028'/></svg>");
  --brush: url("/img/ink-brush.svg");
  --brush-line: url("/img/ink-line.svg");
  --paper-grad: radial-gradient(128% 62% at 50% -6%, #ffffff 0%, #fbfbf9 42%, #f0f0ec 100%);
}

/* ---------- 全局纸底（防白闪） ---------- */
html,
body {
  background-color: var(--paper) !important;
}
/* 原全局字色是蓝灰(#2c3e50)，收进墨色 */
#app {
  color: var(--ink) !important;
}

/* ============================================================
   一、登入界面 · 墨
   ============================================================ */
.login-container[data-v-24fce2b7] {
  position: relative !important;
  overflow: hidden !important;
  background-color: var(--paper) !important;
  background-image:
    var(--grain),
    url("/img/ink-splash.svg"),
    url("/img/ink-seal.png"),
    var(--paper-grad) !important;
  background-repeat: repeat, no-repeat, no-repeat, no-repeat !important;
  background-position: 0 0, left -34px bottom -26px, right 24px bottom 24px, center top !important;
  background-size: 160px 160px, 190px auto, 46px auto, cover !important;
  padding-top: 62px !important;
}

/* 立轴山水：右侧一条淡墨，向四周淡出 */
.login-container[data-v-24fce2b7]::after {
  content: "" !important;
  position: absolute !important;
  right: -14% !important;
  bottom: -6% !important;
  width: 62% !important;
  height: 42% !important;
  background: url("/img/ink-scroll.jpg") right bottom / contain no-repeat !important;
  mix-blend-mode: multiply !important;
  opacity: 0.5 !important;
  pointer-events: none !important;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.55) 26%, #000 68%) !important;
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.55) 26%, #000 68%) !important;
}

/* 顶部头像：墨圈包边 */
.login-container[data-v-24fce2b7]::before {
  content: "" !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: 112px !important;
  height: 112px !important;
  border-radius: 50% !important;
  background: url("/img/login-avatar.jpg") center / cover no-repeat !important;
  box-shadow:
    0 0 0 1px rgba(17, 17, 16, 0.55),
    0 0 0 7px rgba(255, 255, 255, 0.92),
    0 0 0 8px rgba(17, 17, 16, 0.16),
    0 16px 30px -14px rgba(17, 17, 16, 0.45) !important;
  margin: 0 0 22px 0 !important;
  z-index: 1 !important;
}

.login-title[data-v-24fce2b7] {
  font-family: var(--font-ink) !important;
  font-size: 31px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  letter-spacing: 0.42em !important;
  text-indent: 0.42em !important;
  margin-bottom: 38px !important;
  position: relative !important;
  z-index: 1 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}
/* 墨笔横线 */
.login-title[data-v-24fce2b7]::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  bottom: -16px !important;
  transform: translateX(-50%) !important;
  width: 122px !important;
  height: 9px !important;
  background: var(--brush) center / 100% 100% no-repeat !important;
  opacity: 0.9 !important;
}

.input-group[data-v-24fce2b7] {
  width: 100% !important;
  max-width: 326px !important;
  margin-bottom: 26px !important;
  position: relative !important;
  z-index: 1 !important;
}
/* 毛笔勾边：输入框底下一道墨笔，代替生硬的直边 */
.input-group[data-v-24fce2b7]::after {
  content: "" !important;
  position: absolute !important;
  left: -2px !important;
  right: -2px !important;
  bottom: -2px !important;
  height: 9px !important;
  background: var(--brush-line) center / 100% 100% no-repeat !important;
  opacity: 0.9 !important;
  pointer-events: none !important;
}
.input-label[data-v-24fce2b7] {
  font-family: var(--font-ink) !important;
  font-size: 15px !important;
  color: var(--ink-2) !important;
  letter-spacing: 4px !important;
  margin-bottom: 10px !important;
}
.input-group input[data-v-24fce2b7] {
  width: 100% !important;
  height: 50px !important;
  padding: 0 14px !important;
  background-color: #fff !important;
  border: 1px solid rgba(17, 17, 16, 0.2) !important;
  border-bottom: 1px solid rgba(17, 17, 16, 0.32) !important;
  border-radius: 14px !important;
  color: var(--ink) !important;
  font-family: var(--font-ink) !important;
  font-size: 17px !important;
  letter-spacing: 1.5px !important;
  outline: none !important;
  caret-color: var(--seal) !important;
  box-shadow: inset 0 12px 20px -18px rgba(17, 17, 16, 0.55) !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease !important;
}
.input-group input[data-v-24fce2b7]:focus {
  background-color: #fff !important;
  border-color: rgba(179, 39, 29, 0.35) !important;
  border-bottom-color: rgba(179, 39, 29, 0.5) !important;
  box-shadow: 0 0 0 3px rgba(179, 39, 29, 0.07) !important;
}
.input-group input[data-v-24fce2b7]::placeholder {
  color: var(--ink-4) !important;
  font-family: var(--font-ink) !important;
}

/* 桌面端：立轴放大一点、靠右站住 */
@media (min-width: 768px) {
  .login-container[data-v-24fce2b7] {
    padding-top: 78px !important;
  }
  .login-container[data-v-24fce2b7]::after {
    right: 2% !important;
    bottom: -4% !important;
    width: 46% !important;
    height: 58% !important;
    opacity: 0.5 !important;
  }
  .login-container[data-v-24fce2b7]::before {
    width: 124px !important;
    height: 124px !important;
  }
}

/* ============================================================
   二、后台（手机端 + 桌面端） · 墨
   ============================================================ */
.page-wrapper[data-v-fa2b0e12],
.page-wrapper[data-v-fa2b0e12] *,
.admin-layout[data-v-4db4d062],
.admin-layout[data-v-4db4d062] * {
  font-family: var(--font-ink) !important;
}

/* 后台里那几个复刻平台的编辑器控件，蓝色链接统一成墨色 */
.page-wrapper[data-v-fa2b0e12] .Nai-ga5Us2FoA-Long,
.admin-layout[data-v-4db4d062] .Nai-ga5Us2FoA-Long {
  color: var(--ink-2) !important;
}

/* 客服台聊天区保持原样（复刻平台 UI） */
.page-wrapper[data-v-fa2b0e12] .chat-content,
.page-wrapper[data-v-fa2b0e12] .chat-content * {
  font-family: var(--font-sys) !important;
}

.page-wrapper[data-v-fa2b0e12],
.admin-layout[data-v-4db4d062] {
  background-color: var(--paper) !important;
  background-image: var(--grain) !important;
  color: var(--ink) !important;
}

/* 手机端主页：底部淡墨山水（淡墨已烘进图里，纸色与页面一致，无接缝） */
.page-wrapper[data-v-fa2b0e12] {
  background-image: var(--grain), var(--paper-grad) !important;
  background-repeat: repeat, no-repeat !important;
  background-position: 0 0, center top !important;
  background-size: 160px 160px, cover !important;
  background-attachment: scroll, scroll !important;
}
.page-wrapper[data-v-fa2b0e12] .main-content[data-v-fa2b0e12],
.page-wrapper[data-v-fa2b0e12] .content,
.page-wrapper[data-v-fa2b0e12] .management-page[data-v-fa2b0e12],
.page-wrapper[data-v-fa2b0e12] .management-content[data-v-fa2b0e12],
.main-content[data-v-4db4d062],
.content-body[data-v-4db4d062] {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--ink) !important;
}
.admin-layout[data-v-4db4d062] {
  background-image: var(--grain), var(--paper-grad) !important;
  background-repeat: repeat, no-repeat !important;
  background-position: 0 0, center top !important;
  background-size: 160px 160px, cover !important;
  background-attachment: scroll, scroll !important;
}

/* 标题 + 墨笔 */
.page-title[data-v-fa2b0e12] {
  color: var(--ink) !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  letter-spacing: 4px !important;
}
.page-title[data-v-fa2b0e12]::after {
  content: "" !important;
  display: block !important;
  width: 74px !important;
  height: 8px !important;
  margin-top: 6px !important;
  background: var(--brush) center / 100% 100% no-repeat !important;
  opacity: 0.75 !important;
}

/* 卡片：白纸 + 细墨线 */
.page-wrapper[data-v-fa2b0e12] .info-card,
.page-wrapper[data-v-fa2b0e12] .feature-item,
.page-wrapper[data-v-fa2b0e12] .tg-notice,
.page-wrapper[data-v-fa2b0e12] .management-card,
.page-wrapper[data-v-fa2b0e12] [class*="-card"],
.admin-layout[data-v-4db4d062] [class*="-card"] {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border: 1px solid var(--line) !important;
  border-radius: 20px !important;
  box-shadow: 0 12px 26px -20px rgba(17, 17, 16, 0.75) !important;
}
.page-wrapper[data-v-fa2b0e12] .info-row {
  color: var(--ink) !important;
  border-bottom-color: var(--line-2) !important;
}
.page-wrapper[data-v-fa2b0e12] .info-label {
  color: var(--ink-3) !important;
  letter-spacing: 2px !important;
}
.page-wrapper[data-v-fa2b0e12] .info-value {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
.page-wrapper[data-v-fa2b0e12] .arrow { color: var(--ink-4) !important; }

/* 徽章 */
.page-wrapper[data-v-fa2b0e12] .admin-badge,
.page-wrapper[data-v-fa2b0e12] .guest-badge {
  background-color: var(--seal) !important;
  color: #fdf7f5 !important;
  border-radius: 999px !important;
  letter-spacing: 2px !important;
  font-size: 12px !important;
}
.page-wrapper[data-v-fa2b0e12] .guest-badge { background-color: var(--ink-2) !important; }

/* 功能宫格 */
.page-wrapper[data-v-fa2b0e12] .feature-grid { background-color: transparent !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item {
  position: relative !important;
  overflow: hidden !important;
}
.page-wrapper[data-v-fa2b0e12] .feature-item::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 3px !important;
  height: 28px !important;
  background: linear-gradient(180deg, transparent, var(--seal-2), transparent) !important;
  opacity: 0.85 !important;
}
.page-wrapper[data-v-fa2b0e12] .desktop-home-scroll .feature-item::before { display: none !important; }
.page-wrapper[data-v-fa2b0e12] .feature-text {
  color: var(--ink) !important;
  letter-spacing: 2px !important;
  font-size: 15.5px !important;
}
/* 功能宫格图标：保留图标本身的彩色（不再统一涂成墨灰），
   只给图标垫一层极淡的墨晕底片，让彩色图标落在「设计过」的容器里 */
.page-wrapper[data-v-fa2b0e12] .feature-icon {
  width: 38px !important;
  height: 38px !important;
  margin-right: 12px !important;
  border-radius: 12px !important;
  background-color: #fbfaf8 !important;
  background-image: linear-gradient(180deg, #ffffff 0%, #f6f4f1 100%) !important;
  border: 1px solid rgba(17, 17, 16, 0.07) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 6px 12px -10px rgba(17, 17, 16, 0.55) !important;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s ease, border-color 0.2s ease !important;
}
.page-wrapper[data-v-fa2b0e12] .feature-icon svg {
  width: 22px !important;
  height: 22px !important;
  opacity: 1 !important;
  filter: saturate(1.04) !important;
}
/* 图标里的白色描边/底色层，落在浅底片上要收一点，免得糊成一片 */
.page-wrapper[data-v-fa2b0e12] .feature-item:hover .feature-icon {
  transform: translateY(-1px) !important;
  border-color: rgba(179, 39, 29, 0.25) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 8px 16px -12px rgba(17, 17, 16, 0.65) !important;
}
.page-wrapper[data-v-fa2b0e12] .feature-item:active .feature-icon { transform: scale(0.94) !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item.disabled-feature .feature-icon { filter: grayscale(0.85) !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item.logout-item .feature-text { color: var(--seal) !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item.logout-item .feature-icon svg path,
.page-wrapper[data-v-fa2b0e12] .feature-item.logout-item .feature-icon svg { fill: var(--seal) !important; stroke: var(--seal) !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item:hover { background-color: #fdfdfc !important; }
.page-wrapper[data-v-fa2b0e12] .feature-item:active { transform: scale(0.977) !important; }
.page-wrapper[data-v-fa2b0e12] .disabled-feature { opacity: 0.42 !important; }

/* 底部导航 */
.page-wrapper[data-v-fa2b0e12] .custom-tabbar {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-top: 1px solid var(--line) !important;
  box-shadow: 0 -12px 24px -20px rgba(17, 17, 16, 0.8) !important;
}
.page-wrapper[data-v-fa2b0e12] .tab-text {
  color: var(--ink-3) !important;
  letter-spacing: 3px !important;
}
.page-wrapper[data-v-fa2b0e12] .tab-item.active .tab-text { color: var(--ink) !important; font-weight: 600 !important; }
.page-wrapper[data-v-fa2b0e12] .tab-item svg,
.page-wrapper[data-v-fa2b0e12] .tab-item svg path { fill: var(--ink-4) !important; color: var(--ink-4) !important; stroke: var(--ink-4) !important; }
.page-wrapper[data-v-fa2b0e12] .tab-item.active svg,
.page-wrapper[data-v-fa2b0e12] .tab-item.active svg path { fill: var(--seal) !important; color: var(--seal) !important; stroke: var(--seal) !important; }

/* 管理子页头部 */
.page-wrapper[data-v-fa2b0e12] .management-header {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-bottom: 1px solid var(--line) !important;
}
.page-wrapper[data-v-fa2b0e12] .header-title {
  color: var(--ink) !important;
  letter-spacing: 4px !important;
  font-weight: 600 !important;
}

/* 提示条 */
.page-wrapper[data-v-fa2b0e12] .tg-notice .tg-title { color: var(--ink) !important; letter-spacing: 2px !important; }
.page-wrapper[data-v-fa2b0e12] .tg-notice .tg-desc { color: var(--ink-3) !important; }
.page-wrapper[data-v-fa2b0e12] .refresh-hint { color: var(--seal) !important; }

/* 到期标签：收进墨色系，过期才用朱红 */
.page-wrapper[data-v-fa2b0e12] .expire-days {
  border-radius: 999px !important;
  letter-spacing: 1.5px !important;
  border: 1px solid var(--line) !important;
}
.page-wrapper[data-v-fa2b0e12] .expire-normal { color: var(--ink-2) !important; background-color: #f2f2ef !important; }
.page-wrapper[data-v-fa2b0e12] .expire-warning { color: var(--ink-2) !important; background-color: #ecece8 !important; border-color: rgba(17, 17, 16, 0.22) !important; }
.page-wrapper[data-v-fa2b0e12] .expire-critical { color: var(--seal) !important; background-color: #f7e9e6 !important; border-color: rgba(179, 39, 29, 0.28) !important; }
.page-wrapper[data-v-fa2b0e12] .expire-expired { color: #fdf7f5 !important; background-color: var(--seal) !important; border-color: var(--seal) !important; }

.page-wrapper[data-v-fa2b0e12] .new-user-toast {
  background-color: rgba(17, 17, 16, 0.9) !important;
  border-radius: 14px !important;
}
.page-wrapper[data-v-fa2b0e12] .new-user-toast,
.page-wrapper[data-v-fa2b0e12] .new-user-toast * { color: #f7f6f2 !important; }

/* ---------- 桌面端后台 ---------- */
.topbar[data-v-4db4d062] {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-bottom: 1px solid var(--line) !important;
  box-shadow: 0 10px 24px -22px rgba(17, 17, 16, 0.9) !important;
}
.topbar-brand[data-v-4db4d062] {
  color: var(--ink) !important;
  font-family: var(--font-ink) !important;
  letter-spacing: 4px !important;
  font-weight: 600 !important;
}
.nav-item[data-v-4db4d062] {
  color: var(--ink-3) !important;
  border-radius: 12px !important;
  letter-spacing: 2px !important;
}
.nav-item[data-v-4db4d062]:hover { background-color: rgba(17, 17, 16, 0.05) !important; color: var(--ink) !important; }
.nav-item.active[data-v-4db4d062],
.nav-item[data-v-4db4d062].active {
  background-color: transparent !important;
  color: var(--ink) !important;
  font-weight: 600 !important;
  border-bottom: 2px solid var(--seal) !important;
}
.nav-item.active[data-v-4db4d062] .nav-label { color: var(--ink) !important; }
.nav-item[data-v-4db4d062] .nav-icon svg,
.nav-item[data-v-4db4d062] .nav-icon svg path { fill: var(--ink-3) !important; stroke: var(--ink-3) !important; }
.nav-item.active[data-v-4db4d062] .nav-icon svg,
.nav-item.active[data-v-4db4d062] .nav-icon svg path { fill: var(--seal) !important; stroke: var(--seal) !important; }
.topbar-right[data-v-4db4d062],
.topbar-right[data-v-4db4d062] * { color: var(--ink-2) !important; }
.mobile-menu[data-v-4db4d062] {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-right: 1px solid var(--line) !important;
}
.mobile-overlay[data-v-4db4d062] { background-color: rgba(17, 17, 16, 0.48) !important; }
.mobile-menu-item[data-v-4db4d062] { color: var(--ink-2) !important; letter-spacing: 2px !important; }
.mobile-menu-item.active[data-v-4db4d062] {
  background-color: transparent !important;
  color: var(--ink) !important;
  border-left: 3px solid var(--seal) !important;
  font-weight: 600 !important;
}
.menu-toggle[data-v-4db4d062] { color: var(--ink-2) !important; }
.topbar[data-v-4db4d062] .avatar {
  box-shadow: 0 0 0 1px rgba(17, 17, 16, 0.35), 0 0 0 5px rgba(255, 255, 255, 0.9) !important;
}

/* ---------- 后台内表格 / 表单 / 按钮 ---------- */
.admin-layout[data-v-4db4d062] table,
.page-wrapper[data-v-fa2b0e12] table {
  background-color: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  color: var(--ink) !important;
}
.admin-layout[data-v-4db4d062] table th,
.page-wrapper[data-v-fa2b0e12] table th {
  background-color: #f4f4f1 !important;
  color: var(--ink-2) !important;
  letter-spacing: 1.5px !important;
  border-bottom: 1px solid var(--line) !important;
}
.admin-layout[data-v-4db4d062] table td,
.page-wrapper[data-v-fa2b0e12] table td {
  color: var(--ink-2) !important;
  border-bottom: 1px solid var(--line-2) !important;
}
.admin-layout[data-v-4db4d062] table tr:hover,
.page-wrapper[data-v-fa2b0e12] table tr:hover { background-color: rgba(179, 39, 29, 0.035) !important; }

.admin-layout[data-v-4db4d062] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.admin-layout[data-v-4db4d062] textarea,
.admin-layout[data-v-4db4d062] select,
.page-wrapper[data-v-fa2b0e12] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.page-wrapper[data-v-fa2b0e12] textarea,
.page-wrapper[data-v-fa2b0e12] select {
  background-color: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  color: var(--ink) !important;
  font-family: var(--font-ink) !important;
}
.admin-layout[data-v-4db4d062] input:not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
.admin-layout[data-v-4db4d062] textarea:focus,
.admin-layout[data-v-4db4d062] select:focus,
.page-wrapper[data-v-fa2b0e12] input:not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
.page-wrapper[data-v-fa2b0e12] textarea:focus,
.page-wrapper[data-v-fa2b0e12] select:focus {
  border-color: rgba(179, 39, 29, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(179, 39, 29, 0.07) !important;
  outline: none !important;
}
.admin-layout[data-v-4db4d062] .search-input,
.page-wrapper[data-v-fa2b0e12] .search-input { background-color: #fff !important; }
.admin-layout[data-v-4db4d062] .toolbar,
.page-wrapper[data-v-fa2b0e12] .toolbar { color: var(--ink) !important; }

/* ============================================================
   三、弹层（公告 / 红包 / 提示）
   ============================================================ */
.announcement-overlay { background-color: rgba(17, 17, 16, 0.55) !important; }
.announcement-card {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  box-shadow: 0 24px 50px -30px rgba(17, 17, 16, 0.9) !important;
}
.announcement-title {
  color: var(--ink) !important;
  letter-spacing: 4px !important;
  font-weight: 600 !important;
}
.announcement-title::after {
  content: "" !important;
  display: block !important;
  width: 60px !important;
  height: 7px !important;
  margin: 8px auto 0 !important;
  background: var(--brush) center / 100% 100% no-repeat !important;
  opacity: 0.7 !important;
}
.announcement-content { color: var(--ink-2) !important; }

.hb-overlay { background-color: rgba(17, 17, 16, 0.55) !important; }
.hb-wrapper, .hb-body {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
}
.hb-greeting, .hb-sender-name, .hb-open-text {
  color: var(--ink) !important;
  letter-spacing: 2px !important;
}

/* ============================================================
   四、圆润层 · Round
   把墨色 UI 的直角统一磨圆（按钮已回归原版，本层不再动按钮）：
   卡片走柔角 / 弹层走大圆角 / 输入框收圆 /
   图片与分享图打圆角 / 标签徽章全胶囊
   注：聊天区与客服工作台（复刻平台 UI）保持原样，本层不触及
   ============================================================ */

:root {
  --r-pill: 999px;
  --r-modal: 24px;
  --r-card: 20px;
  --r-table: 18px;
  --r-img: 16px;
  --r-input: 14px;
  --r-sm: 12px;
}

/* ---------- 2) 卡片 / 面板 · 柔角 ---------- */
.admin-layout[data-v-4db4d062] [class*="-card"],
.page-wrapper[data-v-fa2b0e12] [class*="-card"],
.page-wrapper[data-v-fa2b0e12] .info-card,
.page-wrapper[data-v-fa2b0e12] .feature-item,
.page-wrapper[data-v-fa2b0e12] .tg-notice,
.page-wrapper[data-v-fa2b0e12] .management-card,
[class*="-card"]:not(.chat-content *):not([class*="card-actions"]),
[class*="-panel"]:not(.chat-content *):not(.chat-settings-panel):not(.note-editor-panel),
[class*="notice"]:not(.chat-content *),
[class*="platform-item"]:not(.chat-content *),
[class*="template-item"]:not(.chat-content *),
[class*="settings-item"]:not(.chat-content *) {
  border-radius: var(--r-card) !important;
}

/* ---------- 3) 弹层 / 对话框 · 大柔角 ---------- */
.announcement-card,
.hb-wrapper,
.hb-body,
.modal-content:not(.chat-content *),
.modal-container:not(.chat-content *),
.modal-box:not(.chat-content *),
.image-preview-modal:not(.chat-content *),
.popup:not(.chat-content *):not([class*="popup-button"]),
.anti-red-list:not(.chat-content *),
[class*="dialog"]:not(.chat-content *) {
  border-radius: var(--r-modal) !important;
}

/* 底部抽屉：只圆上面两只角 */
.modal-sheet:not(.chat-content *),
.anti-red-popup:not(.chat-content *),
.order-popup:not(.chat-content *) {
  border-radius: var(--r-modal) var(--r-modal) 0 0 !important;
}

/* ---------- 4) 输入框 / 表单控件 ---------- */
.input-group input[data-v-24fce2b7],
.admin-layout[data-v-4db4d062] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.admin-layout[data-v-4db4d062] textarea,
.admin-layout[data-v-4db4d062] select,
.page-wrapper[data-v-fa2b0e12] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.page-wrapper[data-v-fa2b0e12] textarea,
.page-wrapper[data-v-fa2b0e12] select,
[class*="form-input"]:not(.chat-content *),
[class*="-input"]:not(.chat-content *):not(.input-group):not(.input-label):not(.input-row):not(.input-wrapper),
[class*="search-input"]:not(.chat-content *),
.anti-red-input {
  border-radius: var(--r-input) !important;
}

/* 复选框 / 单选框保持正圆 */
input[type="checkbox"]:not(.chat-content *),
input[type="radio"]:not(.chat-content *) {
  border-radius: 50% !important;
}

/* ---------- 5) 徽章 / 标签 / 状态 · 全胶囊 ---------- */
.admin-badge,
.guest-badge,
.expire-days,
[class*="badge"]:not(.chat-content *),
[class*="-tag"]:not(.chat-content *),
[class*="tag-"]:not(.chat-content *),
[class*="chip"]:not(.chat-content *) {
  border-radius: var(--r-pill) !important;
}

/* ---------- 6) 表格 · 外壳圆角 ---------- */
.admin-layout[data-v-4db4d062] table,
.page-wrapper[data-v-fa2b0e12] table {
  border-radius: var(--r-table) !important;
}
.admin-layout[data-v-4db4d062] table th:first-child,
.page-wrapper[data-v-fa2b0e12] table th:first-child {
  border-top-left-radius: var(--r-table) !important;
}
.admin-layout[data-v-4db4d062] table th:last-child,
.page-wrapper[data-v-fa2b0e12] table th:last-child {
  border-top-right-radius: var(--r-table) !important;
}
.admin-layout[data-v-4db4d062] table tr:last-child td:first-child,
.page-wrapper[data-v-fa2b0e12] table tr:last-child td:first-child {
  border-bottom-left-radius: var(--r-table) !important;
}
.admin-layout[data-v-4db4d062] table tr:last-child td:last-child,
.page-wrapper[data-v-fa2b0e12] table tr:last-child td:last-child {
  border-bottom-right-radius: var(--r-table) !important;
}

/* ---------- 7) 图片 / 缩略图 ----------
   注：分享页（.share-page-overlay）里的图片一律不碰，保持原样，
       里面的二维码尤其不能被圆角切角，见下方 7.1 */
.image-preview-modal img,
[class*="preview"] img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
[class*="thumb"] img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
[class*="template"] img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
[class*="upload"] img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
[class*="platform-item"] img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
.anti-red-popup img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]),
.anti-red-list img:not(.chat-content *):not([data-qrcode="true"]):not([alt*="二维码"]) {
  border-radius: var(--r-img) !important;
}

/* 模板 / 平台选择卡片：圆角 + 裁边 */
[class*="platform-item"]:not(.chat-content *),
[class*="template-item"]:not(.chat-content *) {
  overflow: hidden !important;
}

/* ---------- 7.1) 二维码 · 一律原样（不圆角、不裁切、不遮罩） ----------
   二维码四个角是定位点，被圆角切掉就扫不出来。
   不管它出现在分享页、预览弹层还是别的地方，都保持直角、不被裁。 */
img[data-qrcode="true"],
img[alt*="二维码"],
.qrcode-img,
.qrcode-container img,
[class*="qrcode"] img,
.kjs-ma img,
.qiandao-qrcode img,
[class*="erweima"] img,
.page-wrapper img[data-qrcode="true"],
.page-wrapper [class*="qrcode"] img,
.page-wrapper .kjs-ma img,
.page-wrapper .qiandao-qrcode img,
.admin-layout img[data-qrcode="true"],
.admin-layout [class*="qrcode"] img,
.admin-layout .kjs-ma img,
.admin-layout .qiandao-qrcode img {
  border-radius: 0 !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  overflow: visible !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  object-fit: contain !important;
}
/* 二维码的外壳也不许裁角（只点名真正装二维码的那几个，不牵连弹层的圆角） */
.qrcode-container,
.qrcode-section,
.qrcode-img,
.qrcode-placeholder,
.kjs-ma,
.qiandao-qrcode {
  border-radius: 0 !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  overflow: visible !important;
}

/* ---------- 8) 导航 / 菜单项 / 开关 ---------- */
.nav-item[data-v-4db4d062],
.mobile-menu-item[data-v-4db4d062],
[class*="menu-item"]:not(.chat-content *),
[class*="tab-item"]:not(.chat-content *),
[class*="nav-item"]:not(.chat-content *) {
  border-radius: var(--r-sm) !important;
}
.anti-red-slider:not(.chat-content *),
[class*="switch"] [class*="slider"]:not(.chat-content *) {
  border-radius: var(--r-pill) !important;
}

/* ============================================================
   五、子账户端（用户端 · 手机 + 桌面） · 墨
   子账户登录后走的是用户端页面组件，此前墨色只挂在管理端组件上，
   这里把同一套墨色镜像到用户端组件，让全站风格统一
   ============================================================ */
.page-wrapper[data-v-cc0fe95a],
.page-wrapper[data-v-cc0fe95a] * {
  font-family: var(--font-ink) !important;
}

.page-wrapper[data-v-cc0fe95a] .Nai-ga5Us2FoA-Long {
  color: var(--ink-2) !important;
}

.page-wrapper[data-v-cc0fe95a] .chat-content,
.page-wrapper[data-v-cc0fe95a] .chat-content * {
  font-family: var(--font-sys) !important;
}

.page-wrapper[data-v-cc0fe95a] {
  background-color: var(--paper) !important;
  background-image: var(--grain) !important;
  color: var(--ink) !important;
}

.page-wrapper[data-v-cc0fe95a] {
  background-image: var(--grain), var(--paper-grad) !important;
  background-repeat: repeat, no-repeat !important;
  background-position: 0 0, center top !important;
  background-size: 160px 160px, cover !important;
  background-attachment: scroll, scroll !important;
}

.page-wrapper[data-v-cc0fe95a] .main-content[data-v-cc0fe95a],
.page-wrapper[data-v-cc0fe95a] .content,
.page-wrapper[data-v-cc0fe95a] .management-page[data-v-cc0fe95a],
.page-wrapper[data-v-cc0fe95a] .management-content[data-v-cc0fe95a] {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--ink) !important;
}

.page-title[data-v-cc0fe95a] {
  color: var(--ink) !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  letter-spacing: 4px !important;
}

.page-title[data-v-cc0fe95a]::after {
  content: "" !important;
  display: block !important;
  width: 74px !important;
  height: 8px !important;
  margin-top: 6px !important;
  background: var(--brush) center / 100% 100% no-repeat !important;
  opacity: 0.75 !important;
}

.page-wrapper[data-v-cc0fe95a] .info-card,
.page-wrapper[data-v-cc0fe95a] .feature-item,
.page-wrapper[data-v-cc0fe95a] .tg-notice,
.page-wrapper[data-v-cc0fe95a] .management-card,
.page-wrapper[data-v-cc0fe95a] [class*="-card"] {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border: 1px solid var(--line) !important;
  border-radius: 20px !important;
  box-shadow: 0 12px 26px -20px rgba(17, 17, 16, 0.75) !important;
}

.page-wrapper[data-v-cc0fe95a] .info-row {
  color: var(--ink) !important;
  border-bottom-color: var(--line-2) !important;
}

.page-wrapper[data-v-cc0fe95a] .info-label {
  color: var(--ink-3) !important;
  letter-spacing: 2px !important;
}

.page-wrapper[data-v-cc0fe95a] .info-value {
  color: var(--ink) !important;
  font-weight: 500 !important;
}

.page-wrapper[data-v-cc0fe95a] .arrow { color: var(--ink-4) !important; }

.page-wrapper[data-v-cc0fe95a] .admin-badge,
.page-wrapper[data-v-cc0fe95a] .guest-badge {
  background-color: var(--seal) !important;
  color: #fdf7f5 !important;
  border-radius: 999px !important;
  letter-spacing: 2px !important;
  font-size: 12px !important;
}

.page-wrapper[data-v-cc0fe95a] .guest-badge { background-color: var(--ink-2) !important; }

.page-wrapper[data-v-cc0fe95a] .feature-grid { background-color: transparent !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item {
  position: relative !important;
  overflow: hidden !important;
}

.page-wrapper[data-v-cc0fe95a] .feature-item::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 3px !important;
  height: 28px !important;
  background: linear-gradient(180deg, transparent, var(--seal-2), transparent) !important;
  opacity: 0.85 !important;
}

.page-wrapper[data-v-cc0fe95a] .desktop-home-scroll .feature-item::before { display: none !important; }

.page-wrapper[data-v-cc0fe95a] .feature-text {
  color: var(--ink) !important;
  letter-spacing: 2px !important;
  font-size: 15.5px !important;
}

.page-wrapper[data-v-cc0fe95a] .feature-icon {
  width: 38px !important;
  height: 38px !important;
  margin-right: 12px !important;
  border-radius: 12px !important;
  background-color: #fbfaf8 !important;
  background-image: linear-gradient(180deg, #ffffff 0%, #f6f4f1 100%) !important;
  border: 1px solid rgba(17, 17, 16, 0.07) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 6px 12px -10px rgba(17, 17, 16, 0.55) !important;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.page-wrapper[data-v-cc0fe95a] .feature-icon svg {
  width: 22px !important;
  height: 22px !important;
  opacity: 1 !important;
  filter: saturate(1.04) !important;
}

.page-wrapper[data-v-cc0fe95a] .feature-item:hover .feature-icon {
  transform: translateY(-1px) !important;
  border-color: rgba(179, 39, 29, 0.25) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 8px 16px -12px rgba(17, 17, 16, 0.65) !important;
}

.page-wrapper[data-v-cc0fe95a] .feature-item:active .feature-icon { transform: scale(0.94) !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item.disabled-feature .feature-icon { filter: grayscale(0.85) !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item.logout-item .feature-text { color: var(--seal) !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item.logout-item .feature-icon svg path,
.page-wrapper[data-v-cc0fe95a] .feature-item.logout-item .feature-icon svg { fill: var(--seal) !important; stroke: var(--seal) !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item:hover { background-color: #fdfdfc !important; }

.page-wrapper[data-v-cc0fe95a] .feature-item:active { transform: scale(0.977) !important; }

.page-wrapper[data-v-cc0fe95a] .disabled-feature { opacity: 0.42 !important; }

.page-wrapper[data-v-cc0fe95a] .custom-tabbar {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-top: 1px solid var(--line) !important;
  box-shadow: 0 -12px 24px -20px rgba(17, 17, 16, 0.8) !important;
}

.page-wrapper[data-v-cc0fe95a] .tab-text {
  color: var(--ink-3) !important;
  letter-spacing: 3px !important;
}

.page-wrapper[data-v-cc0fe95a] .tab-item.active .tab-text { color: var(--ink) !important; font-weight: 600 !important; }

.page-wrapper[data-v-cc0fe95a] .tab-item svg,
.page-wrapper[data-v-cc0fe95a] .tab-item svg path { fill: var(--ink-4) !important; color: var(--ink-4) !important; stroke: var(--ink-4) !important; }

.page-wrapper[data-v-cc0fe95a] .tab-item.active svg,
.page-wrapper[data-v-cc0fe95a] .tab-item.active svg path { fill: var(--seal) !important; color: var(--seal) !important; stroke: var(--seal) !important; }

.page-wrapper[data-v-cc0fe95a] .management-header {
  background-color: var(--paper-2) !important;
  background-image: var(--grain) !important;
  border-bottom: 1px solid var(--line) !important;
}

.page-wrapper[data-v-cc0fe95a] .header-title {
  color: var(--ink) !important;
  letter-spacing: 4px !important;
  font-weight: 600 !important;
}

.page-wrapper[data-v-cc0fe95a] .tg-notice .tg-title { color: var(--ink) !important; letter-spacing: 2px !important; }

.page-wrapper[data-v-cc0fe95a] .tg-notice .tg-desc { color: var(--ink-3) !important; }

.page-wrapper[data-v-cc0fe95a] .refresh-hint { color: var(--seal) !important; }

.page-wrapper[data-v-cc0fe95a] .expire-days {
  border-radius: 999px !important;
  letter-spacing: 1.5px !important;
  border: 1px solid var(--line) !important;
}

.page-wrapper[data-v-cc0fe95a] .expire-normal { color: var(--ink-2) !important; background-color: #f2f2ef !important; }

.page-wrapper[data-v-cc0fe95a] .expire-warning { color: var(--ink-2) !important; background-color: #ecece8 !important; border-color: rgba(17, 17, 16, 0.22) !important; }

.page-wrapper[data-v-cc0fe95a] .expire-critical { color: var(--seal) !important; background-color: #f7e9e6 !important; border-color: rgba(179, 39, 29, 0.28) !important; }

.page-wrapper[data-v-cc0fe95a] .expire-expired { color: #fdf7f5 !important; background-color: var(--seal) !important; border-color: var(--seal) !important; }

.page-wrapper[data-v-cc0fe95a] .new-user-toast {
  background-color: rgba(17, 17, 16, 0.9) !important;
  border-radius: 14px !important;
}

.page-wrapper[data-v-cc0fe95a] .new-user-toast,
.page-wrapper[data-v-cc0fe95a] .new-user-toast * { color: #f7f6f2 !important; }

.page-wrapper[data-v-cc0fe95a] table {
  background-color: var(--paper-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  color: var(--ink) !important;
}

.page-wrapper[data-v-cc0fe95a] table th {
  background-color: #f4f4f1 !important;
  color: var(--ink-2) !important;
  letter-spacing: 1.5px !important;
  border-bottom: 1px solid var(--line) !important;
}

.page-wrapper[data-v-cc0fe95a] table td {
  color: var(--ink-2) !important;
  border-bottom: 1px solid var(--line-2) !important;
}

.page-wrapper[data-v-cc0fe95a] table tr:hover { background-color: rgba(179, 39, 29, 0.035) !important; }

.page-wrapper[data-v-cc0fe95a] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.page-wrapper[data-v-cc0fe95a] textarea,
.page-wrapper[data-v-cc0fe95a] select {
  background-color: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  color: var(--ink) !important;
  font-family: var(--font-ink) !important;
}

.page-wrapper[data-v-cc0fe95a] input:not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
.page-wrapper[data-v-cc0fe95a] textarea:focus,
.page-wrapper[data-v-cc0fe95a] select:focus {
  border-color: rgba(179, 39, 29, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(179, 39, 29, 0.07) !important;
  outline: none !important;
}

.page-wrapper[data-v-cc0fe95a] .search-input { background-color: #fff !important; }

.page-wrapper[data-v-cc0fe95a] .toolbar { color: var(--ink) !important; }

.page-wrapper[data-v-cc0fe95a] [class*="-card"],
.page-wrapper[data-v-cc0fe95a] .info-card,
.page-wrapper[data-v-cc0fe95a] .feature-item,
.page-wrapper[data-v-cc0fe95a] .tg-notice,
.page-wrapper[data-v-cc0fe95a] .management-card {
  border-radius: var(--r-card) !important;
}

.page-wrapper[data-v-cc0fe95a] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.page-wrapper[data-v-cc0fe95a] textarea,
.page-wrapper[data-v-cc0fe95a] select {
  border-radius: var(--r-input) !important;
}

.page-wrapper[data-v-cc0fe95a] table {
  border-radius: var(--r-table) !important;
}

.page-wrapper[data-v-cc0fe95a] table th:first-child {
  border-top-left-radius: var(--r-table) !important;
}

.page-wrapper[data-v-cc0fe95a] table th:last-child {
  border-top-right-radius: var(--r-table) !important;
}

.page-wrapper[data-v-cc0fe95a] table tr:last-child td:first-child {
  border-bottom-left-radius: var(--r-table) !important;
}

.page-wrapper[data-v-cc0fe95a] table tr:last-child td:last-child {
  border-bottom-right-radius: var(--r-table) !important;
}

/* ---------- 1) 用户端桌面：左侧图标导航 ---------- */
.page-wrapper[data-v-cc0fe95a] .nav-icon-item {
  color: var(--ink-3) !important;
  border-radius: 14px !important;
}
.page-wrapper[data-v-cc0fe95a] .nav-icon-item:hover {
  color: var(--ink) !important;
  background-color: rgba(17, 17, 16, 0.05) !important;
}
.page-wrapper[data-v-cc0fe95a] .nav-icon-item.active,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item.router-link-active {
  color: var(--seal) !important;
  background-color: rgba(179, 39, 29, 0.07) !important;
}
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg path,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg circle,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg rect,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg polyline,
.page-wrapper[data-v-cc0fe95a] .nav-icon-item svg line {
  fill: currentColor !important;
  stroke: currentColor !important;
}
.page-wrapper[data-v-cc0fe95a] .nav-label {
  color: currentColor !important;
  letter-spacing: 2px !important;
}
.page-wrapper[data-v-cc0fe95a] .logout-nav { color: var(--ink-3) !important; }
.page-wrapper[data-v-cc0fe95a] .logout-nav:hover { color: var(--seal) !important; }
.page-wrapper[data-v-cc0fe95a] .nav-spacer { background-color: transparent !important; }

/* ---------- 2) 用户端桌面：首页抬头 ---------- */
.page-wrapper[data-v-cc0fe95a] .desktop-home-header {
  color: var(--ink) !important;
  font-family: var(--font-ink) !important;
  letter-spacing: 3px !important;
  font-weight: 600 !important;
}

/* ---------- 3) 首页那层彩色渐变：收成极淡的墨晕，露出宣纸 ---------- */
.page-wrapper[data-v-cc0fe95a] .gradient-bg-canvas {
  opacity: 0.09 !important;
  filter: grayscale(1) contrast(0.85) !important;
}

/* ---------- 4) 空态 / 加载态 / 占位 ---------- */
.page-wrapper[data-v-cc0fe95a] .empty-state,
.page-wrapper[data-v-cc0fe95a] .empty-phrases,
.page-wrapper[data-v-cc0fe95a] .placeholder-content,
.page-wrapper[data-v-cc0fe95a] .loading-state,
.page-wrapper[data-v-cc0fe95a] .desktop-no-session {
  color: var(--ink-4) !important;
  letter-spacing: 2px !important;
}

/* ---------- 5) 提示条图标 ---------- */
.page-wrapper[data-v-cc0fe95a] .toast-icon svg path { fill: var(--seal-2) !important; }
.page-wrapper[data-v-cc0fe95a] .toast-close { color: #f7f6f2 !important; opacity: 0.75 !important; }
.page-wrapper[data-v-cc0fe95a] .toast-close:hover { opacity: 1 !important; }

/* ---------- 6) 角色标签 / 状态点 ---------- */
.page-wrapper[data-v-cc0fe95a] .role-tag {
  border-radius: 999px !important;
  letter-spacing: 1.5px !important;
  padding: 2px 10px !important;
}
.page-wrapper[data-v-cc0fe95a] .online-dot { box-shadow: 0 0 0 2px var(--paper-2) !important; }

/* ---------- 7) 充值 / 续费 / 付款等内嵌页：底色统一成纸 ----------
   注：分享页（.share-page-overlay，也就是分享出去那套页面）不在此列，
       它的底色、标题颜色、图片都保持原样，一律不动。 */
.page-wrapper[data-v-cc0fe95a] [class*="page-overlay"]:not(.share-page-overlay),
.page-wrapper[data-v-cc0fe95a] [class*="page-container"]:not(.share-page-overlay) {
  background-color: transparent !important;
  background-image: none !important;
}

/* ============================================================
   七、用户端（子账户）· 图标对齐层（v9）
   用户界面里出现的宫格图标，不管挂在哪个容器类名下，
   一律跟后台管理端同一套：同款底片、同款尺寸、同款动效，
   并且保留图标本来的配色（不涂成灰）。
   客服会话区不受影响。
   ============================================================ */
[data-v-cc0fe95a] .feature-icon:not(.chat-content *),
[data-v-cc0fe95a] [class*="feature-icon"]:not(.chat-content *),
[data-v-cc0fe95a] [class*="menu-icon"]:not(.chat-content *),
[data-v-cc0fe95a] [class*="grid-icon"]:not(.chat-content *),
[data-v-cc0fe95a] [class*="entry-icon"]:not(.chat-content *),
[data-v-cc0fe95a] [class*="action-icon"]:not(.chat-content *),
[data-v-cc0fe95a] [class*="card-icon"]:not(.chat-content *) {
  width: 38px !important;
  height: 38px !important;
  border-radius: 12px !important;
  background-color: #fbfaf8 !important;
  background-image: linear-gradient(180deg, #ffffff 0%, #f6f4f1 100%) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 6px 12px -10px rgba(17, 17, 16, 0.55) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease !important;
}
[data-v-cc0fe95a] .feature-icon svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="feature-icon"] svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="menu-icon"] svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="grid-icon"] svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="entry-icon"] svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="action-icon"] svg:not(.chat-content *),
[data-v-cc0fe95a] [class*="card-icon"] svg:not(.chat-content *) {
  width: 22px !important;
  height: 22px !important;
  opacity: 1 !important;
}
/* 悬停 / 按下 —— 跟管理端一模一样的反馈 */
[data-v-cc0fe95a] .feature-item:hover .feature-icon:not(.chat-content *),
[data-v-cc0fe95a] [class*="feature-item"]:hover [class*="icon"]:not(.chat-content *) {
  transform: translateY(-1px) !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 8px 16px -12px rgba(17, 17, 16, 0.65) !important;
}
[data-v-cc0fe95a] .feature-item:active .feature-icon:not(.chat-content *),
[data-v-cc0fe95a] [class*="feature-item"]:active [class*="icon"]:not(.chat-content *) {
  transform: scale(0.94) !important;
}
[data-v-cc0fe95a] .feature-item.disabled-feature .feature-icon:not(.chat-content *) {
  filter: grayscale(0.85) !important;
}
/* 退出项：图标同管理端，走朱砂 */
[data-v-cc0fe95a] .feature-item.logout-item .feature-icon svg path,
[data-v-cc0fe95a] .feature-item.logout-item .feature-icon svg {
  fill: var(--seal) !important;
  stroke: var(--seal) !important;
}
/* 底部导航图标：同管理端（未选中墨灰 / 选中朱砂） */
[data-v-cc0fe95a] .tab-item svg,
[data-v-cc0fe95a] .tab-item svg path {
  fill: var(--ink-4) !important;
  color: var(--ink-4) !important;
  stroke: var(--ink-4) !important;
}
[data-v-cc0fe95a] .tab-item.active svg,
[data-v-cc0fe95a] .tab-item.active svg path {
  fill: var(--seal) !important;
  color: var(--seal) !important;
  stroke: var(--seal) !important;
}
/* 桌面端左侧图标导航：同管理端顶部导航 */
[data-v-cc0fe95a] .nav-icon-item svg,
[data-v-cc0fe95a] .nav-icon-item svg path {
  fill: currentColor !important;
  stroke: currentColor !important;
}
