/* ============================================================
   ShouGeng 守更 品牌基础样式
   视觉方向：朱红「查」印章 + 墨色，审验/核查的产品气质
   ============================================================ */

:root {
  --ink-900: #0D131C;
  --ink-800: #131B27;
  --ink-700: #1C2635;
  --ink-500: #3A475C;
  --paper: #F7F8FA;
  --paper-dim: #ECEEF2;

  --seal: #D8443C;          /* 朱红（品牌主色） */
  --seal-deep: #B03229;
  --seal-tint: #FBECEA;

  --ok: #16856B;            /* 正常 */
  --ok-tint: #E4F4EF;
  --warn: #C97F16;          /* 临期 */
  --warn-tint: #FBF0DD;
  --bad: #D8443C;           /* 异常 */
  --bad-tint: #FBECEA;
  --muted: #7A8699;         /* 受限 */

  /* 新视觉语言（订阅页 v2 起统一）：白面 + 冷灰细线 + 单强调色 */
  --line: rgba(13, 19, 28, .09);
  --line-soft: rgba(13, 19, 28, .06);
  --line-strong: rgba(13, 19, 28, .16);
  --surface: #FFFFFF;
  --surface-subtle: #FBFCFD;
  --radius-card: 16px;
  --radius-control: 10px;
  --shadow-card: 0 1px 2px rgba(13, 19, 28, .04), 0 18px 40px -34px rgba(13, 19, 28, .38);

  --mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas,
          "PingFang SC", "Microsoft YaHei", monospace;
  --sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
          "Noto Sans SC", -apple-system, sans-serif;

  /* 多巴胺三色板（保留变量名兼容旧页面；新页面不再使用） */
  --dp-red: #D8443C;
  --dp-yellow: #FFD93D;
  --dp-blue: #4D96FF;
  --dp-ink: #1F1B24;
  --dp-white: #FFFDF7;

  /* 画布：纯亮灰白，不再用极光渐变（科技感靠网格与留白，不靠彩色光斑） */
  --canvas: #F7F8FA;
}

html { -webkit-font-smoothing: antialiased; }

body {
  font-family: var(--sans);
  color: var(--ink-800);
  background: var(--canvas);
}

/* ---------- 全站字号基线（用户反馈整体偏小；统一尺度，不再逐页微调） ----------
   Tailwind Play 是运行时注入 utilities，普通声明压不住 —— 必须 !important。
   顺序要求：.cc-badge 必须排在这些 .text-* 之后（同特异性下后者胜出）。 */
body { font-size: 16px; line-height: 1.66; }
.text-xs   { font-size: 14px   !important; line-height: 1.6  !important; }
.text-sm   { font-size: 16px   !important; line-height: 1.6  !important; }
.text-base { font-size: 17px   !important; }
.text-lg   { font-size: 1.32rem !important; }
.text-xl   { font-size: 1.6rem !important; }
.form-control, .form-select { font-size: 15.5px; }
.form-text { font-size: 14px; }
.cc-table { font-size: 16px; }
.cc-badge { font-size: 13px !important; }

/* ---------- 品牌标识 ---------- */
.cc-logo {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  text-decoration: none !important;
}
.cc-logo .seal {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  background: var(--seal);
  color: #fff;
  font-weight: 800;
  font-size: 1.05rem;
  border-radius: .45rem;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .28), 0 2px 6px rgba(216, 68, 60, .4);
  transform: rotate(-6deg);
  font-family: var(--sans);
  flex: 0 0 auto;
}
.cc-logo .seal.lg { width: 2.6rem; height: 2.6rem; font-size: 1.4rem; border-radius: .55rem; }
.cc-logo .word {
  font-weight: 800;
  letter-spacing: .02em;
  font-size: 1.12rem;
  color: var(--ink-900);
  white-space: nowrap;
}
.cc-logo .word small {
  display: block;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .34em;
  color: var(--muted);
  font-family: var(--mono);
  text-transform: uppercase;
}
.cc-logo.on-dark .word { color: #F4F1EA; }

/* ---------- 数据等宽 ---------- */
.cc-mono, .cc-num {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}

/* ---------- 状态徽标 ---------- */
.cc-badge {
  display: inline-flex;
  align-items: center;
  gap: .34rem;
  padding: .16rem .55rem;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
  white-space: nowrap;
}
.cc-badge::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}
.cc-badge.ok    { color: var(--ok);   background: var(--ok-tint); }
.cc-badge.warn  { color: var(--warn); background: var(--warn-tint); }
.cc-badge.bad   { color: var(--bad);  background: var(--bad-tint); }
.cc-badge.muted { color: var(--muted);background: #EDF0F4; }
.cc-badge.idle  { color: var(--ink-500); background: #EDF0F4; }

/* 标签 chip：无状态点，纯文本小方签（资产标签/筛选用） */
.cc-chip {
  display: inline-flex;
  align-items: center;
  padding: .1rem .42rem;
  border-radius: 5px;
  background: #fff;
  border: 1px solid var(--line-soft);
  font-size: 11.5px;
  font-weight: 500;
  color: var(--ink-500);
  line-height: 1.5;
  white-space: nowrap;
}
.cc-chip.sel { background: var(--seal); border-color: var(--seal); color: #fff; }

/* 临期/异常徽标呼吸点 */
.cc-badge.warn::before, .cc-badge.bad::before { animation: cc-pulse 1.6s ease-in-out infinite; }
@keyframes cc-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .35; transform: scale(.75); }
}

/* ---------- 剩余天数按方案分档：>15绿 / 7~15黄 / ≤7红 ---------- */
.cc-days.ok   { color: var(--ok); }
.cc-days.warn { color: var(--warn); font-weight: 700; }
.cc-days.bad  { color: var(--bad);  font-weight: 700; }

/* ---------- 按钮 ---------- */
.btn {
  border-radius: var(--radius-control);
  font-size: 14.5px;
  font-weight: 600;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.btn-sm { font-size: 13.5px; border-radius: 8px; }
.btn-seal {
  background: var(--seal);
  border: 1px solid var(--seal);
  color: #fff;
}
.btn-seal:hover, .btn-seal:focus {
  background: var(--seal-deep);
  border-color: var(--seal-deep);
  color: #fff;
}
.btn-seal:disabled { opacity: .6; color: #fff; }
.btn-ink {
  background: var(--ink-900);
  border: 1px solid var(--ink-900);
  color: #fff;
}
.btn-ink:hover { background: #000; color: #fff; }
/* 次级按钮：白底细线，悬停加深描边（替代各种彩色描边） */
.btn-ghost, .btn-outline-secondary {
  background: #fff !important;
  border: 1px solid var(--line-strong) !important;
  color: var(--ink-700) !important;
}
.btn-ghost:hover, .btn-outline-secondary:hover {
  border-color: rgba(13, 19, 28, .34) !important;
  color: var(--ink-900) !important;
  background: #fff !important;
}

/* ---------- 表单控件：统一高度/圆角/描边（全站一致） ---------- */
.form-control:not(textarea), .form-select {
  height: 42px;
  border-radius: var(--radius-control);
  border: 1px solid var(--line-strong);
  font-size: 15px;
  color: var(--ink-800);
  background-color: #fff;
  box-shadow: none;
}
/* 文字与边框留出呼吸感：输入框/下拉统一左右内边距，下拉右侧给箭头留位 */
.form-control:not(textarea) { padding-left: .9rem; padding-right: .9rem; }
.form-select { padding-left: .95rem; padding-right: 2.35rem; }
.form-control:not(textarea):focus, .form-select:focus {
  border-color: rgba(216, 68, 60, .55);
  box-shadow: 0 0 0 3px rgba(216, 68, 60, .1);
}
.form-control::placeholder { color: #9AA5B5; }
.input-group-text {
  border: 1px solid var(--line-strong);
  border-right: none;
  border-radius: var(--radius-control) 0 0 var(--radius-control);
  background: #fff;
  color: var(--muted);
}
.input-group .form-control { border-radius: 0 var(--radius-control) var(--radius-control) 0; }
.form-label { font-weight: 600; color: var(--ink-700); font-size: 13.5px; }

/* 弹窗/下拉/标签页：统一圆角与细线 */
.modal-content { border: 1px solid var(--line); border-radius: var(--radius-card) !important; box-shadow: 0 32px 80px -40px rgba(13, 19, 28, .55); }
.modal-header, .modal-footer { border-color: var(--line-soft) !important; }
.dropdown-menu { border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-card); padding: .35rem; }
.dropdown-menu .dropdown-item { padding: .5rem .8rem; border-radius: 8px; }
.nav-tabs { border-bottom: 1px solid var(--line) !important; gap: 4px; }
.nav-tabs .nav-link {
  border: none !important;
  color: var(--muted) !important;
  font-size: 13.5px;
  font-weight: 600;
  padding: .5rem .85rem;
  border-radius: 8px 8px 0 0;
}
.nav-tabs .nav-link:hover { color: var(--ink-900) !important; background: var(--surface-subtle) !important; }
.nav-tabs .nav-link.active {
  color: var(--ink-900) !important;
  background: var(--surface-subtle) !important;
  box-shadow: inset 0 -2px 0 var(--seal);
}
.card { border: 1px solid var(--line); border-radius: var(--radius-card); box-shadow: none; }

/* 卡片：全站统一「白面 + 细线」语言（.cc-card 面板 / .cc-glass 保留类名兼容 / .auth-card 认证表单） */
.cc-card, .cc-glass, .auth-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
.auth-card { border-radius: var(--radius-card); }
/* 面板进场：错峰淡入（fill=backwards，结束后交还 hover/边框样式） */
.cc-card { animation: cc-in .5s cubic-bezier(.2, .7, .3, 1) backwards; }

/* ---------- 卡内次级面板（浅灰内嵌面，替代旧米色块） ---------- */
.cc-panel {
  background: var(--surface-subtle);
  border: 1px solid var(--line-soft);
  border-radius: 12px;
}

/* ---------- 表格 ---------- */
.cc-table thead th {
  font-size: 12.5px;
  letter-spacing: .04em;
  color: var(--muted);
  font-weight: 700;
  background: var(--surface-subtle);
  border-bottom: 1px solid var(--line) !important;
  padding: .7rem .9rem;
  white-space: nowrap;
}
.cc-table tbody tr { transition: background .14s ease; }
.cc-table tbody tr:hover { background: var(--surface-subtle); }
.cc-table td { vertical-align: middle; padding: .72rem .9rem; border-color: var(--line-soft) !important; }

/* ---------- 提示条 ---------- */
#cc-toast-root {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.cc-toast {
  min-width: 240px;
  max-width: 380px;
  padding: .7rem 1rem;
  border-radius: .5rem;
  color: #fff;
  font-size: .88rem;
  box-shadow: 0 8px 24px rgba(13, 19, 28, .22);
  animation: cc-slide-in .28s cubic-bezier(.2, .9, .3, 1.2);
}
.cc-toast.success { background: var(--ok); }
.cc-toast.error   { background: var(--bad); }
.cc-toast.info    { background: var(--ink-700); }
@keyframes cc-slide-in {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ---------- 首页 Hero：白面 + 极淡网格（与订阅页同一语言） ---------- */
.cc-hero {
  position: relative;
  overflow: hidden;
  color: var(--ink-800);
  background: var(--surface);
  border-bottom: 1px solid var(--line-soft);
}
.cc-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(13, 19, 28, .042) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 19, 28, .042) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(120% 78% at 68% 12%, #000 0%, transparent 72%);
  mask-image: radial-gradient(120% 78% at 68% 12%, #000 0%, transparent 72%);
  pointer-events: none;
}
.cc-hero h1 {
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.14;
  color: var(--ink-900);
}
.cc-hero h1 .hl { color: var(--seal); }
.cc-hero a { transition: color .18s ease, opacity .18s ease; }

/* 查询台（工具卡）：白卡 + 细线 */
.cc-tool {
  background: var(--surface);
  color: var(--ink-800);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-card);
  border-radius: var(--radius-card);
}

/* ---------- 悬停微动（配合 .cc-glass/.cc-card 的高亮面板） ---------- */
.cc-lift { transition: transform .3s cubic-bezier(.2, .7, .3, 1), box-shadow .3s ease; }
.cc-lift:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 44px -32px rgba(13, 19, 28, .42);
}

/* ---------- 入场动效：错峰浮现（--i 控制次序） ---------- */
.cc-in {
  opacity: 0;
  animation: cc-in .66s cubic-bezier(.2, .7, .3, 1) forwards;
  animation-delay: calc(var(--i, 0) * 75ms);
}
@keyframes cc-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
/* 列表/表格内容载入后的淡入（数据回填时不生硬） */
.cc-fade-in { animation: cc-fade .4s ease forwards; }
@keyframes cc-fade { from { opacity: 0; } to { opacity: 1; } }

/* 页面切换：整页重载不做任何淡出（淡出会露出白色底 = 白闪）；
   应用内跳转由 app.js 的 PJAX 只换内容区，页内进场靠 .cc-in/.cc-card 动画 */

@media (prefers-reduced-motion: reduce) {
  .cc-in, .cc-rise, .cc-fade-in, .cc-card { animation: none !important; opacity: 1 !important; transform: none !important; }
  .cc-lift:hover { transform: none; }
  .cc-badge.warn::before, .cc-badge.bad::before { animation: none !important; }
}

.cc-tool-tabs { display: flex; border-bottom: 1px solid rgba(13, 19, 28, .08); }
.cc-tool-tabs button {
  flex: 1;
  padding: .8rem .5rem;
  font-weight: 700;
  font-size: .92rem;
  color: var(--muted);
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: color .15s;
}
.cc-tool-tabs button.active {
  color: var(--seal);
  border-bottom-color: var(--seal);
}
.cc-tool-tabs button:hover { color: var(--ink-800); }
.cc-input-mono {
  font-family: var(--mono);
  font-size: 1rem;
  letter-spacing: .01em;
}

/* 查询结果 */
.cc-result-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .58rem 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: .89rem;
}
.cc-result-row:last-child { border-bottom: none; }
.cc-result-row .k { color: var(--muted); flex: 0 0 auto; }
.cc-result-row .v { font-family: var(--mono); text-align: right; word-break: break-all; }

/* 首页入场动画：一次编排的错峰浮现 */
.cc-rise { opacity: 0; animation: cc-rise .7s cubic-bezier(.2, .7, .3, 1) forwards; }
.cc-rise-1 { animation-delay: .05s; }
.cc-rise-2 { animation-delay: .16s; }
.cc-rise-3 { animation-delay: .28s; }
.cc-rise-4 { animation-delay: .42s; }
@keyframes cc-rise {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---------- AdminLTE 局部覆盖（侧栏/顶栏品牌化）——侧栏：纯白 + 细线 ---------- */
.cc-auth .main-sidebar {
  background: #fff !important;
  border-right: 1px solid var(--line);
  box-shadow: none !important;
}
/* 文字色一律 !important：AdminLTE 按 [class*=sidebar-dark-] 给的白字/白hover 是 (0,4,1)，两层类压不过 */
.cc-auth .sidebar a.nav-link {
  color: var(--ink-500) !important;
  border-radius: 8px;
  margin: 2px 8px;
  padding: .55rem .7rem;
  transition: background .16s ease, color .16s ease;
}
.cc-auth .sidebar a.nav-link.active {
  background: var(--ink-900) !important;
  color: #fff !important;
  font-weight: 600;
}
.cc-auth .sidebar a.nav-link:hover { color: var(--ink-900) !important; background: rgba(13, 19, 28, .05) !important; }
.cc-auth .sidebar a.nav-link.active:hover { background: var(--ink-900) !important; color: #fff !important; }
.cc-auth .sidebar .nav-item.menu-open > .nav-link { background: rgba(13, 19, 28, .04) !important; color: var(--ink-900) !important; }
.cc-auth .sidebar .nav-header { color: var(--muted) !important; font-size: 11.5px !important;
  letter-spacing: .14em; text-transform: uppercase; padding: 1rem .95rem .45rem; }
.cc-auth .sidebar-divider { border-top-color: var(--line); }
/* 品牌区高度必须对齐 AdminLTE 的预留位：它给菜单留的是 calc(3.5rem + 1px) = 57px
   （.layout-navbar-fixed .wrapper .brand-link ~ .sidebar { margin-top: ... }），
   而 brand-link 是 position:fixed 不占文档流——我们 padding-top:13 + 双行 word 把它撑到 69px，
   多出的 12px 直接盖到「监控台」标题与首项上（logo 压菜单、显示不全）。
   收到 3.5rem 并由 flex 垂直居中，logo 底边停在 ~49px，与菜单留 8px 净空。 */
.cc-auth .main-sidebar .brand-link {
  position: static !important;
  height: 3.75rem !important;
  padding: 0 1rem !important;
  line-height: normal !important;
  background: #fff !important;      /* 压掉 AdminLTE 深底与页面内联红底 */
  border-bottom: 1px solid var(--line-soft);
  overflow: visible !important;
}
/* 品牌标识：去旋转/去硬阴影，改小方块，高级但不花哨 */
.cc-auth .main-sidebar .cc-logo .seal,
.cc-logo .seal {
  width: 1.8rem;
  height: 1.8rem;
  font-size: .98rem;
  border-radius: 8px;
  box-shadow: none;
  transform: none;
}
.cc-auth .main-sidebar .cc-logo .word { color: var(--ink-900) !important; font-size: 1.02rem; }
.cc-auth .main-sidebar .cc-logo .word small { font-size: .58rem; letter-spacing: .28em; }
.cc-auth .main-sidebar .sidebar { margin-top: 0 !important; }
.cc-auth .content-wrapper { background: transparent; }

/* 顶栏：固定 56px，白底细线，右侧信息弱化 */
.cc-auth .main-navbar {
  min-height: 56px;
  border-bottom: 1px solid var(--line) !important;
  box-shadow: none !important;
}
.cc-auth .main-navbar a { font-size: 13.5px !important; }
.cc-nav-title { font-size: 14px !important; font-weight: 700; letter-spacing: -.01em; color: var(--ink-900); }
.cc-auth .sidebar .nav-link .nav-icon { width: 18px; font-size: 13px; opacity: .85; }
.cc-auth .sidebar a.nav-link p { font-size: 14px; margin: 0; }
.cc-auth .sidebar .nav-treeview a.nav-link p { font-size: 13px; }
.cc-auth .content-header { padding: 18px 24px 4px; }
.cc-auth .content-header h1,
.cc-auth .content-header h2 { font-size: 19px !important; letter-spacing: -.01em; font-weight: 800; color: var(--ink-900); }
.cc-auth .content-wrapper > .px-4 { padding-left: 24px !important; padding-right: 24px !important; }

/* 通用页头（页面内不再各写一套大标题）
   结构：.cc-page-head > 左侧标题组 + 可选 .cc-page-actions */
.cc-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.cc-page-head h1 {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -.015em;
  color: var(--ink-900);
  margin: 0;
  line-height: 1.3;
}
.cc-page-head p { margin: 6px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.7; }
.cc-page-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* 卡片内小节标题：全站统一字号/图标重量（图标默认墨色，不再逐个上色） */
.cc-h2 {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink-900);
}
.cc-h2 > i {
  width: 1rem;
  text-align: center;
  font-size: .95em;
  color: var(--ink-500);
}
.cc-h2 .cc-h2-meta { margin-left: auto; font-size: 13px; font-weight: 500; color: var(--muted); }

/* 辅助说明文字：统一 13px 灰（替代各页 12/12.5/13.5 混排） */
.cc-meta { font-size: 13px; line-height: 1.7; color: var(--muted); }

/* 指标卡数字/标签：控制台与后台同一尺度 */
.cc-stat-num {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: var(--ink-900);
}
.cc-stat-label { font-size: 13px; font-weight: 600; color: var(--muted); }

/* 内容页（运维指南 / 条款）：统一的阅读尺度与段落层级 */
.cc-article { max-width: 46rem; margin: 0 auto; }
.cc-article .lead { font-size: 16px; line-height: 1.85; color: var(--ink-500); }
.cc-article h2 { font-size: 1.18rem; font-weight: 700; color: var(--ink-900); margin: 2rem 0 .6rem; letter-spacing: -.01em; }
.cc-article h3 { font-size: 1.02rem; font-weight: 700; color: var(--ink-800); margin: 1.3rem 0 .4rem; }
.cc-article p, .cc-article li { font-size: 15.5px; line-height: 1.85; color: var(--ink-500); }
.cc-article p { margin: .55rem 0; }
.cc-article ul, .cc-article ol { padding-left: 1.2rem; margin: .5rem 0; }
.cc-article ul { list-style: disc; }
.cc-article ol { list-style: decimal; }
.cc-article li { margin: .3rem 0; }
.cc-article strong { color: var(--ink-800); }
.cc-article .cc-callout {
  margin: 1.2rem 0;
  padding: .9rem 1rem;
  background: var(--seal-tint);
  border: 1px solid rgba(216, 68, 60, .18);
  border-radius: 12px;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--seal-deep);
}
.cc-article .cc-cta {
  margin-top: 2rem;
  padding: 1.1rem 1.2rem;
  background: var(--surface-subtle);
  border: 1px solid var(--line-soft);
  border-radius: 14px;
}
.cc-article .cc-cta p { margin: .2rem 0 .8rem; }
.cc-article .cc-related { margin-top: 1.6rem; font-size: 14px; color: var(--muted); }
.cc-article .cc-related a { color: var(--seal); }

/* 空状态：图标 + 一句说明，全站同一形态 */
.cc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: 1.6rem .5rem;
  font-size: 13px;
  color: var(--muted);
  text-align: center;
}
.cc-empty > i { font-size: 1.35rem; opacity: .45; }

/* 管理员角标 */
.cc-admin-chip {
  background: var(--seal);
  color: #fff;
  font-size: .64rem;
  padding: .08rem .38rem;
  border-radius: .3rem;
  font-weight: 700;
  letter-spacing: .06em;
}

/* ---------- 侧栏分组（菜单收敛：一级只留核心，低频页面收进可展开组） ---------- */
.cc-auth .nav-group { display: flex; align-items: center; }
.cc-auth .nav-group p { flex: 1; margin: 0; }
.cc-auth .nav-group .cc-arrow {
  font-size: .66rem;
  color: var(--muted);
  transition: transform .22s ease, color .22s ease;
}
.cc-auth .nav-item.menu-open > .nav-group .cc-arrow { transform: rotate(90deg); color: var(--ink-900); }
.cc-auth .nav-group.has-active > .nav-link { color: var(--ink-900) !important; font-weight: 600; }
/* 二级项：嵌套面板（浅色玻璃里的浅灰内嵌区）+ 明显缩进（AdminLTE 默认 padding-left 实测被覆盖为 0）
   背景须带 .nav-item 提升特异性——AdminLTE 的 [class*=sidebar-dark-] .nav-sidebar>.nav-item>.nav-treeview
   {background-color:transparent} 是 (0,4,0)，仅靠 .cc-auth 两层类压不过 */
.cc-auth .main-sidebar .nav-item > .nav-treeview {
  margin: 0 .45rem .25rem;
  padding-left: 1.05rem;
  background: rgba(13, 19, 28, .05);
  border-radius: .5rem;
  box-shadow: inset 0 0 0 1px rgba(13, 19, 28, .04);
}
.cc-auth .nav-treeview .nav-item { margin: .1rem 0; }
.cc-auth .nav-treeview .nav-link {
  padding: .38rem .5rem;
  border-radius: .4rem;
  font-size: .85rem;
}
.cc-auth .nav-treeview .nav-link:hover { background: rgba(13, 19, 28, .05) !important; }
.cc-auth .nav-treeview .nav-link.active { font-weight: 600; }

/* ---------- 兜底档位卡片（3 档，管家服务化决策⑥） ---------- */
.cc-mode-card {
  cursor: pointer;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: .85rem;
  background: #fff;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.cc-mode-card:hover {
  transform: translateY(-1px);
  border-color: var(--line-strong);
  box-shadow: 0 10px 24px -20px rgba(13, 19, 28, .45);
}
.cc-mode-card.sel {
  border-color: rgba(216, 68, 60, .45);
  background: var(--seal-tint);
  box-shadow: 0 0 0 3px rgba(216, 68, 60, .08);
}
.cc-mode-card.compact { padding: .55rem .7rem; }
.cc-chip-sel {
  font-size: .64rem;
  background: var(--seal);
  color: #fff;
  padding: .1rem .48rem;
  border-radius: 999px;
  white-space: nowrap;
  font-weight: 700;
}

/* ---------- 响应式微调 ---------- */
@media (max-width: 768px) {
  .cc-hero h1 { font-size: 1.9rem !important; }
  .cc-table { font-size: .84rem; min-width: 720px; } /* 窄屏保留列宽，横向滚动而不是把列压成竖排 */
  .cc-auth .content-header { padding: 14px 16px 2px; }
  .cc-auth .content-wrapper > .px-4 { padding-left: 16px !important; padding-right: 16px !important; }
  .cc-page-head h1 { font-size: 18px; }
}
