/* ═══════════════════════════════════════════════
   大成慧校平台 · Design System v2
   ═══════════════════════════════════════════════ */
:root {
  --bg:       #07111c;
  --sidebar:  #050d16;
  --panel:    #0c1a27;
  --card:     #0f1f2e;
  --line:     #1a2f42;
  --line2:    #142234;

  --ink:      #edf6ff;
  --ink2:     #a8c4d8;
  --muted:    #5c7d96;

  --brand:    #d48b47;   /* 金橙  慧校 */
  --blue:     #20b7d8;   /* 科技蓝 慧招 */
  --purple:   #8b7cf6;   /* 深紫  慧教 */
  --green:    #36c275;
  --red:      #ff6f7b;
  --yellow:   #e2aa38;

  --sidebar-w: 216px;
  --sidebar-mini: 64px;
  --sidebar-transition: 200ms ease;
  --badge-bg: var(--red);
  --badge-color: #fff;
  --r:  12px;
  --r2:  8px;
  --shadow: 0 12px 40px rgba(0,0,0,.35);
}

/* ─── Consultant Growth Center V2 ───────────────────────────── */
.coach-v2-hero {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  margin-bottom: 16px;
  border: 1px solid rgba(32,183,216,.22);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(32,183,216,.14), rgba(139,124,246,.08) 58%, rgba(231,157,74,.06)), rgba(13,32,48,.82);
}
.coach-v2-hero span { color: var(--yellow); font-size: 12px; font-weight: 1000; letter-spacing: .08em; }
.coach-v2-hero h3 { margin: 8px 0; font-size: 26px; }
.coach-v2-hero p { max-width: 880px; margin: 0; color: var(--muted); line-height: 1.75; }
.coach-v2-status {
  min-width: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 18px;
  background: rgba(3,15,24,.42);
}
.coach-v2-status b { color: var(--accent); font-size: 42px; }
.coach-v2-status small { color: var(--muted); font-weight: 800; }
.coach-v2-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 16px; }
.coach-v2-tabs button {
  border: 1px solid rgba(113,176,214,.2);
  border-radius: 999px;
  background: rgba(16,34,53,.78);
  color: var(--muted);
  padding: 9px 18px;
  font-weight: 900;
  cursor: pointer;
}
.coach-v2-tabs button.active,
.coach-v2-tabs button:hover { color: #06111b; border-color: transparent; background: var(--accent); }
.coach-v2-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.coach-v2-kpi {
  padding: 18px;
  border: 1px solid rgba(113,176,214,.16);
  border-top: 4px solid var(--accent);
  border-radius: 18px;
  background: rgba(16,34,53,.86);
}
.coach-v2-kpi.green { border-top-color: var(--ok); }
.coach-v2-kpi.yellow { border-top-color: var(--yellow); }
.coach-v2-kpi.purple { border-top-color: #8b7cf6; }
.coach-v2-kpi span,
.coach-v2-kpi small { display: block; color: var(--muted); font-weight: 800; }
.coach-v2-kpi b { display: block; margin: 8px 0 6px; color: var(--ink); font-size: 32px; line-height: 1; }
.coach-v2-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.coach-v2-panel {
  min-width: 0;
  padding: 20px;
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 20px;
  background: rgba(16,34,53,.82);
}
.coach-v2-panel.wide { grid-column: 1 / -1; }
.coach-v2-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.coach-v2-panel-head h3 { margin: 0 0 6px; font-size: 19px; }
.coach-v2-panel-head p { margin: 0; color: var(--muted); line-height: 1.6; }
.coach-v2-panel-head > span {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(231,157,74,.16);
  color: var(--yellow);
  font-weight: 1000;
}
.coach-v2-records { display: grid; gap: 10px; }
.coach-v2-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 14px;
  padding: 14px;
  border: 1px solid rgba(113,176,214,.12);
  border-left: 3px solid rgba(113,176,214,.22);
  border-radius: 16px;
  background: rgba(3,15,24,.42);
}
.coach-v2-record.good { border-left-color: var(--ok); }
.coach-v2-record.warn { border-left-color: var(--yellow); }
.coach-v2-record-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.coach-v2-record-title strong { font-size: 16px; }
.coach-v2-record-title span { color: var(--muted); font-size: 12px; font-weight: 800; }
.coach-v2-record-main p { margin: 8px 0; color: var(--ink2); line-height: 1.7; }
.coach-v2-record-main audio { width: 100%; max-width: 520px; height: 32px; margin-top: 8px; }
.coach-v2-ai-note {
  padding: 10px 12px;
  border: 1px solid rgba(139,124,246,.22);
  border-radius: 12px;
  background: rgba(139,124,246,.08);
}
.coach-v2-ai-note b { color: #c9c3ff; margin-right: 8px; }
.coach-v2-ai-note span { color: var(--muted); line-height: 1.6; }
.coach-v2-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.coach-v2-tags i {
  font-style: normal;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(226,170,56,.13);
  color: var(--yellow);
  font-size: 12px;
  font-weight: 900;
}
.coach-v2-record-side { display: grid; align-content: start; justify-items: end; gap: 8px; }
.coach-v2-record-side b { color: var(--accent); font-size: 28px; line-height: 1; }
.coach-v2-record-side small { color: var(--muted); font-size: 12px; text-align: right; }
.coach-growth-chart {
  height: 210px;
  display: grid;
  grid-template-columns: repeat(8, minmax(22px, 1fr));
  align-items: end;
  gap: 10px;
  padding: 14px 8px 4px;
  border-radius: 16px;
  background: rgba(3,15,24,.36);
}
.coach-growth-bar { height: 170px; display: grid; align-items: end; justify-items: center; gap: 6px; }
.coach-growth-bar i {
  width: 100%;
  max-width: 34px;
  min-height: 10px;
  border-radius: 999px 999px 4px 4px;
  background: linear-gradient(180deg, var(--accent), #8b7cf6);
}
.coach-growth-bar span { color: var(--ink); font-weight: 1000; font-size: 12px; }
.coach-growth-bar small { color: var(--muted); }
.coach-v2-tips { display: grid; gap: 10px; }
.coach-v2-tips div {
  display: flex;
  gap: 10px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(226,170,56,.18);
  background: rgba(226,170,56,.07);
}
.coach-v2-tips b {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 8px;
  background: rgba(226,170,56,.16);
  color: var(--yellow);
}
.coach-v2-tips span { color: #ffd9a3; line-height: 1.6; }
.coach-word-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-content: flex-start;
  min-height: 160px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(3,15,24,.34);
}
.coach-word-cloud span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(139,124,246,.12);
  color: #d8d3ff;
  font-weight: 900;
}
.coach-word-cloud .lv3,
.coach-word-cloud .lv4 { background: rgba(226,170,56,.16); color: var(--yellow); font-size: 18px; }
.coach-word-cloud .lv2 { color: #8beaff; }
.coach-word-cloud b { color: var(--muted); }
.coach-funnel { display: grid; gap: 12px; }
.coach-funnel div { display: grid; grid-template-columns: 54px minmax(0, 1fr) 40px; align-items: center; gap: 10px; }
.coach-funnel span { color: var(--muted); font-weight: 900; }
.coach-funnel i { height: 12px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.06); }
.coach-funnel b { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--accent), var(--yellow)); }
.coach-funnel strong { text-align: right; color: var(--ink); }
.coach-script-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.coach-script-card {
  min-height: 94px;
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 16px;
  background: rgba(3,15,24,.4);
  color: var(--ink);
  padding: 16px;
  text-align: left;
  cursor: pointer;
  transition: border-color .14s, background .14s, transform .14s;
}
.coach-script-card:hover { border-color: rgba(32,183,216,.5); background: rgba(32,183,216,.07); transform: translateY(-1px); }
.coach-script-card strong,
.coach-script-card span { display: block; }
.coach-script-card strong { font-size: 16px; }
.coach-script-card span { margin-top: 10px; color: var(--muted); font-size: 12px; }
@media (max-width: 900px) {
  .coach-v2-hero,
  .coach-v2-panel-head { flex-direction: column; }
  .coach-v2-status { min-height: 96px; }
  .coach-v2-kpis,
  .coach-v2-layout,
  .coach-script-grid { grid-template-columns: 1fr; }
  .coach-v2-record { grid-template-columns: 1fr; }
  .coach-v2-record-side { justify-items: start; }
  .coach-v2-record-side small { text-align: left; }
}

/* ── RESET ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Microsoft YaHei","PingFang SC",Arial,sans-serif;
  font-size: 14px;
  line-height: 1.65;
  min-height: 100vh;
}
.hidden { display: none !important; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

/* ── INPUTS ────────────────────────────────── */
input, select, textarea {
  width: 100%;
  background: rgba(5,13,22,.9);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  color: var(--ink);
  padding: 11px 13px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(32,183,216,.1);
}
input[type="checkbox"],
input[type="radio"] {
  width: auto;
  padding: 0;
  box-shadow: none;
  accent-color: var(--blue);
}
textarea { resize: vertical; }

/* ── LOGIN ─────────────────────────────────── */
.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: radial-gradient(ellipse at 30% 15%, #091e30 0%, #07111c 65%);
}
.login-card {
  width: min(420px, 100%);
  background: rgba(12,26,39,.96);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 40px 36px;
  box-shadow: var(--shadow);
}
.brand-mark {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--brand), #f1b36f);
  display: grid; place-items: center;
  color: #07111c; font-weight: 900; font-size: 22px;
  flex-shrink: 0;
}
.brand-mark.sm { width: 36px; height: 36px; font-size: 15px; border-radius: 10px; }
.login-card h1 { margin: 20px 0 6px; font-size: 28px; font-weight: 900; }
.login-card > p { color: var(--muted); margin-bottom: 28px; }
.login-card small { display: block; margin-top: 18px; color: var(--muted); font-size: 12px; }
.login-card form { display: grid; gap: 14px; }
.login-card label { display: grid; gap: 6px; font-weight: 700; font-size: 13px; color: var(--ink2); }

/* ── APP SHELL ──────────────────────────────── */
.app-shell { display: flex; min-height: 100vh; }

/* ── SIDEBAR ────────────────────────────────── */
.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--sidebar);
  border-right: 1px solid var(--line2);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: visible;
  transition: width var(--sidebar-transition);
}
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 14px 16px;
  border-bottom: 1px solid var(--line2);
  flex-shrink: 0;
}
.sidebar-brand-text {
  min-width: 0;
  transition: opacity .15s ease, width .15s ease;
}
.sidebar-brand-text strong { display: block; font-size: 14px; font-weight: 900; white-space: nowrap; }
.sidebar-brand-text span   { display: block; font-size: 11px; color: var(--muted); margin-top: 1px; white-space: nowrap; }

.sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 10px 8px;
  scrollbar-width: none;
}
.sidebar-body::-webkit-scrollbar { display: none; }

/* Nav groups */
.nav-group { margin-bottom: 4px; }
.nav-group-label {
  font-size: 10.5px;
  font-weight: 900;
  color: var(--muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 10px 8px 4px;
  display: block;
  transition: opacity .15s ease;
}
.nav-group-link {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.nav-group-link:hover,
.nav-group-link.active {
  color: var(--blue);
}
.nav-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  text-align: left;
  padding: 9px 10px;
  border: none;
  border-radius: var(--r2);
  background: transparent;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  transition: background .12s, color .12s, justify-content .12s;
  margin-bottom: 1px;
}
.nav-btn:hover { background: rgba(255,255,255,.05); color: var(--ink2); }
.nav-btn.active { background: rgba(32,183,216,.1); color: var(--blue); font-weight: 800; }
.nav-btn[data-page="students"].active,
.nav-btn[data-page="classes"].active,
.nav-btn[data-page="teach"].active,
.nav-btn[data-page="learning"].active {
  color: var(--purple);
  background: rgba(139,124,246,.1);
}
.nav-btn[data-page="finance"].active {
  color: var(--green);
  background: rgba(54,194,117,.1);
}
.nav-btn[data-page="settings"].active {
  color: var(--ink2);
  background: rgba(255,255,255,.06);
}
.nav-icon {
  position: relative;
  width: 18px; height: 18px;
  display: grid; place-items: center;
  flex-shrink: 0;
}
.nav-icon svg { width: 16px; height: 16px; display: block; }
.nav-emoji-icon {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  font-size: 16px;
  line-height: 1;
}
.nav-label {
  white-space: nowrap;
  overflow: hidden;
  transition: opacity .15s ease, width .15s ease;
}
.nav-badge {
  position: absolute;
  top: -7px;
  right: -8px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  display: none;
  place-items: center;
  background: var(--badge-bg);
  color: var(--badge-color);
  font-size: 10px;
  font-weight: 900;
  line-height: 18px;
  box-shadow: 0 0 0 2px var(--sidebar);
}
.nav-badge:not([data-count="0"]) { display: grid; }

.sidebar-divider { height: 1px; background: var(--line2); margin: 6px 8px; }

.sidebar-foot {
  position: relative;
  border-top: 1px solid var(--line2);
  padding: 10px 10px 12px;
  flex-shrink: 0;
  display: grid;
  gap: 9px;
}
.user-card { display: flex; align-items: center; gap: 9px; min-width: 0; }
.user-avatar {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: linear-gradient(135deg,rgba(32,183,216,.2),rgba(139,124,246,.2));
  border: 1px solid rgba(32,183,216,.2);
  display: grid; place-items: center;
  font-weight: 900; font-size: 13px; color: #8beaff;
  flex-shrink: 0;
  cursor: pointer;
}
.user-info { min-width: 0; }
.user-info strong { display: block; font-size: 13px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-info span   { display: block; font-size: 11px; color: var(--muted); }

.project-toggle {
  display: flex;
  gap: 4px;
  padding: 3px;
  border-radius: 10px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.04);
}
.project-toggle button {
  flex: 1;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  padding: 6px 4px;
  font-size: 12px;
  font-weight: 900;
  transition: all .12s;
}
.project-toggle button:hover { color: var(--ink2); background: rgba(255,255,255,.04); }
.project-toggle button.active {
  color: #8beaff;
  background: rgba(32,183,216,.14);
  border-color: rgba(32,183,216,.28);
}
.project-switch label { font-size: 11px; color: var(--muted); margin-bottom: 4px; display: block; }
.project-switch select { padding: 8px 10px; font-size: 13px; }
.project-switch { display: none; }

.btn-logout {
  width: 100%; padding: 8px;
  border: 1px solid var(--line2);
  border-radius: var(--r2);
  background: transparent; color: var(--muted);
  font-size: 12px; font-weight: 700;
  transition: all .12s;
}
.btn-logout:hover { border-color: var(--red); color: var(--red); background: rgba(255,111,123,.05); }
.btn-logout { display: none; }

.sidebar-toggle-btn {
  margin-left: auto;
  width: 28px;
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(255,255,255,.035);
  color: var(--ink2);
  font-size: 20px;
  line-height: 1;
  font-weight: 900;
  display: grid;
  place-items: center;
  transition: all .12s;
}
.sidebar-toggle-btn:hover {
  color: var(--ink);
  border-color: rgba(32,183,216,.32);
  background: rgba(32,183,216,.08);
}
.user-menu {
  position: absolute;
  left: 12px;
  bottom: 72px;
  z-index: 80;
  width: 180px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #091623;
  box-shadow: var(--shadow);
}
.user-menu strong,
.user-menu span { display: block; }
.user-menu strong { font-size: 13px; }
.user-menu span { color: var(--muted); font-size: 12px; margin-bottom: 10px; }
.user-menu button {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid rgba(255,111,123,.35);
  border-radius: 10px;
  background: rgba(255,111,123,.08);
  color: #ffb5bc;
  font-weight: 900;
}

.sidebar.collapsed {
  width: var(--sidebar-mini);
}
.sidebar.collapsed .sidebar-brand {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}
.sidebar.collapsed .sidebar-brand-text,
.sidebar.collapsed .nav-group-label,
.sidebar.collapsed .nav-label,
.sidebar.collapsed .user-info,
.sidebar.collapsed .project-toggle {
  opacity: 0;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  padding: 0;
  margin: 0;
}
.sidebar.collapsed .sidebar-body { padding: 10px 8px; }
.sidebar.collapsed .nav-btn {
  justify-content: center;
  padding: 11px 0;
  gap: 0;
}
.sidebar.collapsed .nav-icon svg {
  width: 18px;
  height: 18px;
}
.sidebar.collapsed .nav-btn::after {
  content: attr(data-title);
  position: absolute;
  left: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  pointer-events: none;
  opacity: 0;
  white-space: nowrap;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #091623;
  color: var(--ink);
  box-shadow: var(--shadow);
  font-size: 12px;
  font-weight: 900;
  transition: opacity .12s, transform .12s;
}
.sidebar.collapsed .nav-btn:hover::after {
  opacity: 1;
  transform: translate(2px, -50%);
}
.sidebar.collapsed .sidebar-divider {
  margin: 8px 14px;
}
.sidebar.collapsed .sidebar-foot {
  justify-items: center;
  padding: 10px 8px 12px;
}
.sidebar.collapsed .user-card {
  display: grid;
  justify-items: center;
  gap: 8px;
}
.sidebar.collapsed .sidebar-toggle-btn {
  margin-left: 0;
}
.sidebar.collapsed .user-menu {
  left: 58px;
  bottom: 18px;
}

/* ── CONTENT ─────────────────────────────────── */
.content-wrap { flex: 1; min-width: 0; overflow-x: hidden; }
main { padding: 32px 36px; max-width: 1180px; }

@media (min-width: 961px) and (max-width: 1279px) {
  .sidebar {
    width: var(--sidebar-mini);
  }
  .sidebar .sidebar-brand {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
  }
  .sidebar .sidebar-brand-text,
  .sidebar .nav-group-label,
  .sidebar .nav-label,
  .sidebar .user-info,
  .sidebar .project-toggle {
    opacity: 0;
    width: 0;
    height: 0;
    overflow: hidden;
    pointer-events: none;
    padding: 0;
    margin: 0;
  }
  .sidebar .nav-btn {
    position: relative;
    justify-content: center;
    padding: 11px 0;
    gap: 0;
  }
  .sidebar .nav-btn::after {
    content: attr(data-title);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    z-index: 90;
    pointer-events: none;
    opacity: 0;
    white-space: nowrap;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #091623;
    color: var(--ink);
    box-shadow: var(--shadow);
    font-size: 12px;
    font-weight: 900;
    transition: opacity .12s, transform .12s;
  }
  .sidebar .nav-btn:hover::after {
    opacity: 1;
    transform: translate(2px, -50%);
  }
  .sidebar .sidebar-toggle-btn { display: none; }
  .sidebar .sidebar-foot {
    justify-items: center;
    padding: 10px 8px 12px;
  }
  .sidebar .user-card {
    display: grid;
    justify-items: center;
  }
  main { padding: 28px 28px; }
}

/* ── PAGE HEADER ─────────────────────────────── */
.page-header { margin-bottom: 24px; }
.page-header h2 { font-size: 26px; font-weight: 900; margin-bottom: 3px; }
.page-header p  { color: var(--muted); font-size: 13px; }
.page-header-row {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 16px;
}

/* ── BUTTONS ─────────────────────────────────── */
.btn-primary, .primary {
  background: linear-gradient(135deg, var(--blue), #48d5ef);
  border: none; border-radius: var(--r2);
  color: #03111b; padding: 10px 18px;
  font-weight: 900; font-size: 13px;
  transition: opacity .15s;
}
.btn-primary:hover, .primary:hover { opacity: .85; }

.btn-secondary, .secondary {
  background: linear-gradient(135deg, var(--brand), #e3a15c);
  border: none; border-radius: var(--r2);
  color: #08111b; padding: 10px 18px;
  font-weight: 900; font-size: 13px;
}
.btn-secondary:hover, .secondary:hover { opacity: .85; }

.btn-ghost, .ghost {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  color: var(--ink2); padding: 9px 16px;
  font-weight: 700; font-size: 13px;
  transition: background .12s, border-color .12s;
}
.btn-ghost:hover, .ghost:hover { background: rgba(255,255,255,.08); color: var(--ink); }

.btn-danger, .danger {
  background: rgba(255,111,123,.08);
  border: 1px solid rgba(255,111,123,.35);
  border-radius: var(--r2);
  color: #ffb5bc; padding: 9px 16px;
  font-weight: 700; font-size: 13px;
}
.actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* ── COMMAND: GREETING ───────────────────────── */
.cmd-greeting { margin-bottom: 20px; }
.cmd-greeting h2 { font-size: 24px; font-weight: 900; margin-bottom: 3px; }
.cmd-greeting p  { color: var(--muted); font-size: 13px; }

/* ── COMMAND: TODO BANNER ────────────────────── */
.todo-banner {
  display: flex; align-items: flex-start; gap: 12px;
  background: rgba(255,111,123,.06);
  border: 1px solid rgba(255,111,123,.18);
  border-radius: var(--r);
  padding: 14px 18px;
  margin-bottom: 24px;
}
.todo-banner.ok {
  background: rgba(54,194,117,.05);
  border-color: rgba(54,194,117,.18);
}
.todo-icon { font-size: 18px; flex-shrink: 0; padding-top: 1px; }
.todo-text strong { display: block; font-size: 13.5px; font-weight: 800; margin-bottom: 3px; }
.todo-text span   { font-size: 13px; color: var(--ink2); }

/* ── KPI CARDS ───────────────────────────────── */
.kpi-section-label {
  font-size: 11px; font-weight: 900;
  color: var(--muted); letter-spacing: 1.5px;
  text-transform: uppercase; margin-bottom: 10px;
}
.kpi-section-label + .kpi-grid { margin-bottom: 10px; }

.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 12px; }
.kpi-card {
  background: var(--card);
  border: 1px solid var(--line2);
  border-radius: var(--r);
  padding: 18px 20px 16px;
  position: relative; overflow: hidden;
  transition: border-color .15s, transform .12s;
}
.kpi-card:hover { border-color: var(--line); transform: translateY(-1px); }
.kpi-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--kpi-accent, var(--blue));
  border-radius: 3px 3px 0 0;
}
.kpi-label { font-size: 11.5px; color: var(--muted); font-weight: 800; margin-bottom: 8px; }
.kpi-value { font-size: 30px; font-weight: 900; line-height: 1; margin-bottom: 6px; }
.kpi-note  { font-size: 11.5px; color: var(--muted); }
.kpi-note.up   { color: var(--green); }
.kpi-note.warn { color: var(--yellow); }
.kpi-note.bad  { color: var(--red); }

/* ── PANELS ──────────────────────────────────── */
.panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.panel {
  background: var(--card);
  border: 1px solid var(--line2);
  border-radius: var(--r);
  padding: 20px;
}
.panel-head {
  display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 14px;
}
.panel-head h3 { font-size: 14px; font-weight: 900; }
.panel-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.panel-badge {
  font-size: 11px; font-weight: 900;
  padding: 3px 9px; border-radius: 999px;
}
.panel-badge.warn { background: rgba(255,111,123,.12); color: #ffb5bc; }
.panel-badge.ok   { background: rgba(54,194,117,.12); color: #9bf0bd; }

/* Alert list */
.alert-list { display: grid; gap: 7px; }
.alert-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 11px 13px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: var(--r2);
  transition: background .12s, border-color .12s, transform .12s;
}
.alert-item:hover {
  background: rgba(255,255,255,.04);
  border-color: rgba(32,183,216,.24);
}
.alert-clickable {
  cursor: pointer;
}
.alert-clickable:hover {
  transform: translateY(-1px);
}
.alert-dot {
  width: 7px; height: 7px;
  border-radius: 50%; flex-shrink: 0; margin-top: 4px;
}
.alert-dot.danger  { background: var(--red);    box-shadow: 0 0 5px rgba(255,111,123,.45); }
.alert-dot.warning { background: var(--yellow); }
.alert-body  { flex: 1; min-width: 0; }
.alert-title { font-size: 13px; font-weight: 800; display: block; }
.alert-desc  { font-size: 11.5px; color: var(--muted); margin-top: 2px; display: block; }
.alert-tag {
  font-size: 11px; font-weight: 900;
  padding: 2px 8px; border-radius: 999px;
  flex-shrink: 0; white-space: nowrap; align-self: flex-start;
}
.alert-tag.danger  { background: rgba(255,111,123,.12); color: #ffb5bc; }
.alert-tag.warning { background: rgba(226,170,56,.12);  color: #ffd47a; }
.alert-action {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px 9px;
  background: rgba(32,183,216,.08);
  color: #a8eaff;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.alert-action:hover {
  border-color: rgba(32,183,216,.42);
  background: rgba(32,183,216,.16);
}

/* Advice list */
.advice-list { display: grid; gap: 8px; }
.advice-item {
  padding: 11px 13px;
  background: rgba(32,183,216,.04);
  border: 1px solid rgba(32,183,216,.1);
  border-radius: var(--r2);
  font-size: 13px; color: var(--ink2); line-height: 1.7;
}

/* ── TABLE ───────────────────────────────────── */
.table-wrap { overflow-x: auto; border-radius: var(--r); border: 1px solid var(--line2); margin-top: 16px; }
table { width: 100%; border-collapse: collapse; background: var(--card); }
th {
  text-align: left; padding: 11px 13px;
  font-size: 11.5px; color: var(--muted); font-weight: 900;
  background: rgba(255,255,255,.02); border-bottom: 1px solid var(--line2);
  white-space: nowrap;
}
td {
  padding: 11px 13px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  font-size: 13px; font-weight: 700;
}
td small { font-size: 11.5px; color: var(--muted); font-weight: 600; }
tr:last-child td { border-bottom: none; }
tbody tr:hover td { background: rgba(255,255,255,.018); }

/* ── TAGS ────────────────────────────────────── */
.tag {
  display: inline-flex; align-items: center;
  border-radius: 999px; padding: 3px 10px;
  font-size: 11.5px; font-weight: 900;
  background: rgba(32,183,216,.1); color: #8beaff;
  white-space: nowrap;
}
.tag.green  { background: rgba(54,194,117,.1);  color: #9bf0bd; }
.tag.red    { background: rgba(255,111,123,.1);  color: #ffb5bc; }
.tag.yellow { background: rgba(226,170,56,.1);   color: #ffd47a; }
.tag.purple { background: rgba(139,124,246,.1);  color: #cac4ff; }
.tag.orange { background: rgba(212,139,71,.12);  color: #ffd9b6; }

/* ── PAGE TITLE 升级版 ────────────────────────── */
.page-title {
  display: flex; align-items: center;
  justify-content: space-between; gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line2);
}
.page-title-left h2 { font-size: 22px; font-weight: 900; margin-bottom: 3px; line-height: 1.2; }
.page-title-left p  { color: var(--muted); font-size: 12.5px; }

/* ── STAGE FILTER PILLS ───────────────────────── */
.stage-filter {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.stage-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border-radius: 999px;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.025);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s, border-color .12s, color .12s;
}
.stage-pill:hover { color: var(--ink2); border-color: var(--line); background: rgba(255,255,255,.05); }
.pill-count {
  background: rgba(255,255,255,.07);
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 10.5px;
  font-weight: 900;
  min-width: 18px;
  text-align: center;
}
/* 各阶段激活色 */
.stage-pill.s-blue.active   { border-color: rgba(32,183,216,.5);  background: rgba(32,183,216,.12);  color: #8beaff; }
.stage-pill.s-blue.active .pill-count   { background: rgba(32,183,216,.2);  color: #8beaff; }
.stage-pill.s-yellow.active { border-color: rgba(226,170,56,.45); background: rgba(226,170,56,.1);   color: #ffd47a; }
.stage-pill.s-yellow.active .pill-count { background: rgba(226,170,56,.2);  color: #ffd47a; }
.stage-pill.s-purple.active { border-color: rgba(139,124,246,.45);background: rgba(139,124,246,.1);  color: #cac4ff; }
.stage-pill.s-purple.active .pill-count { background: rgba(139,124,246,.2); color: #cac4ff; }
.stage-pill.s-green.active  { border-color: rgba(54,194,117,.45); background: rgba(54,194,117,.1);   color: #9bf0bd; }
.stage-pill.s-green.active .pill-count  { background: rgba(54,194,117,.2);  color: #9bf0bd; }
.stage-pill.s-red.active    { border-color: rgba(255,111,123,.4); background: rgba(255,111,123,.1);  color: #ffb5bc; }
.stage-pill.s-red.active .pill-count    { background: rgba(255,111,123,.2); color: #ffb5bc; }
/* 非激活状态的数字也给一点颜色暗示 */
.stage-pill.s-yellow .pill-count { color: var(--yellow); }
.stage-pill.s-purple .pill-count { color: var(--purple); }
.stage-pill.s-green .pill-count  { color: var(--green); }
.stage-pill.s-red .pill-count    { color: var(--red); }

/* legacy .filter-bar compat */
.filter-bar { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 14px; }
.filter-bar .tag { cursor: pointer; transition: background .12s; }
.filter-bar .tag:hover { filter: brightness(1.15); }
.filter-bar .tag.selected { background: rgba(32,183,216,.22); color: #fff; box-shadow: 0 0 0 1px rgba(32,183,216,.4); }

/* ── LEADS WORKBENCH ─────────────────────────── */
.leads-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px 22px;
  align-items: start;
  margin-bottom: 16px;
  padding: 24px;
  border: 1px solid rgba(32,183,216,.16);
  border-radius: 18px;
  background:
    radial-gradient(circle at 10% 0%, rgba(32,183,216,.14), transparent 38%),
    linear-gradient(135deg, rgba(15,31,46,.98), rgba(8,19,31,.96));
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}
.module-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: 1.8px;
}
.leads-copy h2 {
  font-size: 30px;
  font-weight: 900;
  line-height: 1.05;
  margin-bottom: 8px;
}
.leads-copy p {
  max-width: 560px;
  color: var(--ink2);
  font-size: 13px;
}
.leads-actions {
  display: flex;
  gap: 9px;
  justify-content: flex-end;
  align-items: center;
}
.leads-actions .btn-primary,
.leads-actions .btn-ghost {
  min-height: 42px;
  padding-inline: 18px;
}
.leads-metrics {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.lead-metric {
  padding: 13px 14px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
}
.lead-metric span {
  display: block;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 900;
  margin-bottom: 6px;
}
.lead-metric strong {
  display: block;
  color: var(--ink);
  font-size: 24px;
  line-height: 1;
  margin-bottom: 6px;
}
.lead-metric small {
  color: var(--muted);
  font-size: 11px;
}
.lead-searchbar {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(15,31,46,.92), rgba(8,19,31,.92));
}
.lead-searchbar input {
  flex: 1;
  min-width: 220px;
  height: 44px;
  border-color: rgba(32,183,216,.22);
  background: rgba(2,10,18,.56);
}
.lead-searchbar input:focus {
  border-color: rgba(32,183,216,.72);
  box-shadow: 0 0 0 3px rgba(32,183,216,.12);
}
.schedule-filterbar {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.2fr 1fr auto auto;
  gap: 10px;
  align-items: end;
  margin: 0 0 16px;
  padding: 14px;
  border: 1px solid rgba(32,183,216,.16);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(15,31,46,.9), rgba(8,19,31,.92));
}
.schedule-filterbar label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.schedule-filterbar input,
.schedule-filterbar select {
  height: 44px;
  border-color: rgba(32,183,216,.2);
  background: rgba(2,10,18,.56);
}
.schedule-filterbar input:focus,
.schedule-filterbar select:focus {
  border-color: rgba(32,183,216,.72);
  box-shadow: 0 0 0 3px rgba(32,183,216,.12);
}
.stage-card-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 14px;
}
.stage-card {
  text-align: left;
  min-height: 70px;
  padding: 13px 14px;
  border: 1px solid var(--line2);
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(15,31,46,.92), rgba(8,19,31,.92));
  color: var(--ink2);
  position: relative;
  overflow: hidden;
  transition: transform .12s, border-color .12s, background .12s;
}
.stage-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
}
.stage-card span {
  display: block;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 900;
  margin-bottom: 8px;
}
.stage-card strong {
  display: block;
  color: var(--ink);
  font-size: 23px;
  line-height: 1;
}
.stage-card:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.38);
  background: linear-gradient(180deg, rgba(32,183,216,.1), rgba(8,19,31,.94));
}
.stage-card.active {
  border-color: rgba(32,183,216,.52);
  box-shadow: 0 0 0 1px rgba(32,183,216,.12), 0 12px 28px rgba(32,183,216,.07);
}
.stage-card.active::before { background: var(--blue); }
.stage-card.s-yellow.active { border-color: rgba(226,170,56,.45); }
.stage-card.s-yellow.active::before { background: var(--yellow); }
.stage-card.s-purple.active { border-color: rgba(139,124,246,.45); }
.stage-card.s-purple.active::before { background: var(--purple); }
.stage-card.s-green.active { border-color: rgba(54,194,117,.45); }
.stage-card.s-green.active::before { background: var(--green); }
.stage-card.s-red.active { border-color: rgba(255,111,123,.42); }
.stage-card.s-red.active::before { background: var(--red); }
.lead-empty {
  min-height: 220px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 10px;
  padding: 34px;
  text-align: center;
  border: 1px dashed rgba(32,183,216,.2);
  border-radius: 16px;
  background:
    radial-gradient(circle at 50% 0%, rgba(32,183,216,.08), transparent 42%),
    rgba(255,255,255,.018);
}

.teach-ops-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.teach-op-card {
  min-height: 150px;
  padding: 18px;
  border: 1px solid rgba(32,183,216,.16);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(15,31,46,.95), rgba(8,19,31,.94));
  box-shadow: 0 16px 30px rgba(0,0,0,.14);
}
.teach-op-card span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 10px;
}
.teach-op-card strong {
  display: block;
  color: var(--ink);
  font-size: 34px;
  line-height: 1;
  margin-bottom: 8px;
}
.teach-op-card p {
  min-height: 36px;
  margin: 0 0 14px;
  color: var(--ink3);
  font-size: 13px;
  line-height: 1.5;
}
.class-work-list {
  display: grid;
  gap: 12px;
}
.class-work-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
}
.class-work-card strong {
  display: block;
  color: var(--ink);
  margin-bottom: 6px;
}
.class-work-card span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 10px;
}
.class-work-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.class-page-summary {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 18px;
}
.class-page-summary span {
  padding: 9px 13px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 999px;
  background: rgba(32,183,216,.08);
  color: var(--ink2);
  font-size: 13px;
  font-weight: 900;
}
.class-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.class-card {
  min-height: 220px;
  padding: 18px;
  border: 1px solid rgba(32,183,216,.15);
  border-radius: 18px;
  background:
    radial-gradient(circle at 18% 0%, rgba(32,183,216,.11), transparent 32%),
    linear-gradient(180deg, rgba(15,31,46,.96), rgba(8,19,31,.94));
  box-shadow: 0 16px 34px rgba(0,0,0,.16);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.class-card:hover {
  transform: translateY(-3px);
  border-color: rgba(32,183,216,.42);
  background:
    radial-gradient(circle at 18% 0%, rgba(32,183,216,.18), transparent 35%),
    linear-gradient(180deg, rgba(16,37,56,.98), rgba(9,22,35,.96));
  box-shadow: 0 20px 44px rgba(0,0,0,.24);
}
.class-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}
.btn-ghost.mini {
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 10px;
  font-size: 12px;
}
.class-card h3 {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.35;
}
.class-card p {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: 13px;
}
.class-card-count {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 10px;
}
.class-card-count strong {
  color: var(--ink);
  font-size: 34px;
  line-height: 1;
}
.class-card-count span {
  color: var(--muted);
  font-weight: 900;
}
.class-card small {
  display: block;
  margin-top: 12px;
  color: var(--muted);
}
.class-detail-head {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: -4px 0 14px;
}
.class-detail-head span {
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(32,183,216,.1);
  color: var(--ink2);
  font-size: 12px;
  font-weight: 900;
}
.panel.slim {
  padding: 16px;
}
.recruit-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.recruit-action-card {
  min-height: 112px;
  padding: 18px;
  border: 1px solid rgba(32,183,216,.16);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(15,31,46,.92), rgba(8,19,31,.92));
  color: var(--ink);
  text-align: left;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.recruit-action-card:hover {
  transform: translateY(-2px);
  border-color: rgba(32,183,216,.42);
  background: linear-gradient(180deg, rgba(18,42,62,.96), rgba(9,23,36,.96));
}
.recruit-action-card strong {
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
}
.recruit-action-card span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.recruit-hello-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 14px;
  margin-bottom: 18px;
}
.recruit-hello-copy,
.recruit-mini-game {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(32,183,216,.1), rgba(255,255,255,.025));
  padding: 18px;
}
.recruit-hello-copy span {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}
.recruit-hello-copy h3 {
  margin: 0 0 8px;
  font-size: 24px;
  color: var(--ink);
}
.recruit-hello-copy p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}
.recruit-hello-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.recruit-mini-game {
  background: rgba(18,42,61,.72);
}
.recruit-mini-game strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
}
.recruit-mini-game p,
.recruit-mini-game small {
  color: var(--muted);
}
.recruit-mini-game button {
  width: 100%;
  margin: 12px 0;
  border: 0;
  border-radius: 12px;
  padding: 11px 14px;
  background: var(--brand);
  color: #04131d;
  font-weight: 900;
  cursor: pointer;
}
.warmup-meter {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}
.warmup-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--green));
  transition: width .18s ease;
}
.trial-card-list {
  display: grid;
  gap: 12px;
}
.trial-card {
  padding: 16px;
  border: 1px solid rgba(32,183,216,.14);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(15,31,46,.92), rgba(8,19,31,.92));
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.trial-card:hover {
  transform: translateY(-2px);
  border-color: rgba(32,183,216,.38);
  background: linear-gradient(180deg, rgba(18,42,62,.96), rgba(9,23,36,.96));
}
.trial-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.trial-card-head strong {
  margin-right: 8px;
  color: var(--ink);
  font-size: 17px;
}
.trial-card-head small,
.trial-meta {
  color: var(--muted);
  font-size: 12px;
}
.trial-meta {
  margin-top: 8px;
}
.trial-period-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.trial-period-card {
  text-align: left;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 16px;
  padding: 18px 20px;
  background: linear-gradient(180deg, rgba(18,38,56,.92), rgba(10,25,38,.92));
  color: var(--ink);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.trial-period-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--blue);
}
.trial-period-card.tp-1::before { background: var(--green); }
.trial-period-card.tp-2::before { background: var(--yellow); }
.trial-period-card:hover,
.trial-period-card.active {
  transform: translateY(-2px);
  border-color: rgba(32,183,216,.55);
  background: linear-gradient(180deg, rgba(23,50,73,.96), rgba(11,28,42,.96));
}
.trial-period-card span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 12px;
}
.trial-period-card strong {
  display: block;
  font-size: 34px;
  line-height: 1;
  margin-bottom: 10px;
}
.trial-period-card strong small {
  margin-left: 4px;
  font-size: 14px;
  color: var(--ink2);
}
.trial-period-card div {
  font-weight: 900;
  color: var(--ink);
}
.trial-period-card div b {
  color: var(--green);
}
.trial-period-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.trial-summary-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  margin-bottom: 16px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 16px;
  background: rgba(15,31,46,.82);
}
.trial-summary-toolbar h3 {
  margin: 0 0 6px;
  font-size: 18px;
}
.trial-summary-toolbar p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.trial-filterbar button span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  font-size: 11px;
}
.trial-arrange-panel {
  margin-bottom: 16px;
}
.trial-summary-list {
  display: grid;
  gap: 10px;
}
.trial-summary-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(32,183,216,.14);
  border-left: 3px solid var(--blue);
  border-radius: 14px;
  background: rgba(10,28,43,.74);
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.trial-summary-item:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.45);
  background: rgba(14,37,56,.92);
}
.trial-summary-item.compact {
  padding: 11px 13px;
}
.trial-summary-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.trial-summary-title strong {
  font-size: 17px;
}
.trial-summary-main p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.trial-summary-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 360px;
}
.trial-archive {
  display: grid;
  gap: 10px;
}
.trial-fold {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  background: rgba(15,31,46,.72);
  overflow: hidden;
}
.trial-fold summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  cursor: pointer;
  color: var(--ink);
  font-weight: 900;
  list-style: none;
}
.trial-fold summary::-webkit-details-marker { display: none; }
.trial-fold summary b {
  min-width: 28px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(32,183,216,.14);
  color: var(--brand);
}
.trial-fold[open] summary {
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.trial-fold .compact-list {
  padding: 12px;
}
.empty.small {
  margin: 12px;
  min-height: 58px;
  padding: 18px;
}
.trial-scoreboard {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid rgba(32,183,216,.2);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(15,33,49,.94), rgba(9,22,34,.94));
}
#page-trial .page-title {
  margin-bottom: 12px;
  padding-bottom: 14px;
}
#page-trial .page-title-left h2 {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.18;
}
#page-trial .page-title-left p {
  font-size: 12px;
  line-height: 1.45;
}
#page-trial .page-title .btn-primary {
  min-height: 34px;
  padding: 8px 14px;
  border-radius: 9px;
  font-size: 12px;
}
.trial-period-tabs {
  display: inline-flex;
  gap: 6px;
  padding: 4px;
  margin-bottom: 12px;
  border-radius: 10px;
  background: rgba(3,12,20,.55);
  border: 1px solid rgba(255,255,255,.06);
}
.trial-period-tabs button {
  height: 28px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.trial-period-tabs button.active {
  background: var(--blue);
  color: #06151e;
}
.trial-funnel-line {
  display: grid;
  grid-template-columns: 1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr;
  align-items: stretch;
  gap: 8px;
}
.trial-funnel-line article {
  min-height: 76px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(16,34,51,.86);
}
.trial-funnel-line article span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}
.trial-funnel-line article strong {
  display: inline-block;
  margin: 7px 5px 3px 0;
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
}
.trial-funnel-line article small {
  color: var(--ink2);
  font-size: 11px;
  font-weight: 700;
}
.trial-funnel-line > i {
  position: relative;
  min-height: 76px;
}
.trial-funnel-line > i::before {
  content: '';
  position: absolute;
  left: 5px;
  right: 5px;
  top: 50%;
  height: 2px;
  background: rgba(32,183,216,.38);
}
.trial-funnel-line > i::after {
  content: '';
  position: absolute;
  right: 4px;
  top: calc(50% - 5px);
  width: 10px;
  height: 10px;
  border-top: 2px solid rgba(32,183,216,.6);
  border-right: 2px solid rgba(32,183,216,.6);
  transform: rotate(45deg);
}
.trial-bottleneck {
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(226,170,56,.1);
  border: 1px solid rgba(226,170,56,.24);
  color: #f6d38d;
  font-size: 12px;
  font-weight: 700;
}
.trial-workbench {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid rgba(32,183,216,.2);
  border-radius: 12px;
  background: rgba(13,30,45,.9);
}
.trial-workbench-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.trial-workbench-title h2 {
  margin: 0 0 4px;
  font-size: 18px;
  font-weight: 800;
}
.trial-workbench-title p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.trial-workbench-title > span {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(32,183,216,.12);
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
}
.trial-work-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.trial-work-section {
  min-height: 176px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(7,20,32,.72);
  overflow: hidden;
}
.trial-work-section.today { border-color: rgba(32,183,216,.28); }
.trial-work-section.confirm { border-color: rgba(226,170,56,.24); }
.trial-work-section.review { border-color: rgba(139,124,246,.25); }
.trial-work-section.follow { border-color: rgba(224,82,82,.22); }
.trial-work-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: rgba(255,255,255,.025);
}
.trial-work-head h3 {
  margin: 0 0 3px;
  font-size: 14px;
  font-weight: 800;
}
.trial-work-head p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}
.trial-work-head span {
  min-width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(32,183,216,.14);
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
}
.trial-work-list {
  display: grid;
  gap: 7px;
  padding: 9px;
}
.trial-summary-item.waiting { border-left-color: var(--yellow); }
.trial-summary-item.arrived { border-left-color: var(--green); }
.trial-summary-item.review { border-left-color: var(--purple); }
.trial-summary-item.signed { border-left-color: var(--green); }
.trial-summary-item.missed { border-left-color: var(--red); }
.trial-status {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  background: rgba(226,170,56,.12);
  color: var(--yellow);
}
.trial-status.arrived, .trial-status.signed { background: rgba(54,194,117,.12); color: var(--green); }
.trial-status.review { background: rgba(139,124,246,.13); color: #a99cff; }
.trial-status.missed { background: rgba(224,82,82,.12); color: var(--red); }
.trial-reason-tag {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(224,82,82,.1);
  color: #ffb7c0;
  font-size: 11px;
  font-weight: 800;
}
.trial-analysis-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 14px;
}
.trial-bars {
  display: grid;
  gap: 8px;
}
.trial-bar-row {
  display: grid;
  grid-template-columns: 110px 1fr 80px;
  align-items: center;
  gap: 8px;
  color: var(--ink2);
  font-size: 11px;
}
.trial-bar-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
  color: var(--ink);
}
.trial-bar-row i {
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  overflow: hidden;
}
.trial-bar-row i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--green));
}
.trial-bars.reason .trial-bar-row i b {
  background: linear-gradient(90deg, var(--yellow), var(--red));
}
.trial-bar-row strong {
  text-align: right;
  color: var(--brand);
  font-size: 11px;
}
.archive-list .trial-summary-item {
  padding: 9px 11px;
}
#page-trial .trial-summary-title strong {
  font-size: 13px;
}
#page-trial .trial-summary-main p,
#page-trial .trial-summary-title,
#page-trial .trial-summary-item {
  font-size: 12px;
}
#page-trial .trial-summary-actions .btn-small {
  min-height: 28px;
  padding: 6px 9px;
  border-radius: 7px;
  font-size: 11px;
}
@media (max-width: 960px) {
  .trial-period-grid { grid-template-columns: 1fr; }
  .trial-summary-toolbar { align-items: stretch; flex-direction: column; }
  .trial-summary-item { align-items: flex-start; flex-direction: column; }
  .trial-summary-actions { justify-content: flex-start; min-width: 0; }
  .trial-funnel-line { grid-template-columns: 1fr; }
  .trial-funnel-line > i { display: none; }
  .trial-work-grid, .trial-analysis-grid { grid-template-columns: 1fr; }
  .trial-workbench-title { flex-direction: column; }
  .trial-bar-row { grid-template-columns: 92px 1fr 76px; }
}
.attendance-row {
  align-items: center;
}
.makeup-summary {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.table-wrap .tag {
  white-space: nowrap;
}
.panel-badge.warn {
  color: #ffd88a;
  background: rgba(233,178,75,.16);
}
.panel-badge.ok {
  color: #9bf0bd;
  background: rgba(53,208,127,.14);
}
.lead-empty-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(32,183,216,.11);
  border: 1px solid rgba(32,183,216,.24);
  color: #8beaff;
  font-weight: 900;
}
.lead-empty h3 {
  font-size: 17px;
  font-weight: 900;
}
.lead-empty p {
  max-width: 460px;
  color: var(--muted);
  font-size: 13px;
}
.lead-empty .actions {
  justify-content: center;
  margin-top: 6px;
}
.lead-incomplete-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(231,157,74,.38);
  background: rgba(231,157,74,.14);
  color: #ffd89a;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}
.dial-lead-row .lead-incomplete-badge {
  margin: 6px 0 0;
}
.lead-mobile-card .lead-incomplete-badge {
  margin-bottom: 8px;
}
.duplicate-review {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.duplicate-review h3 {
  margin: 0;
  font-size: 17px;
}
.duplicate-review > p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.duplicate-card {
  padding: 14px;
  border: 1px solid rgba(231,157,74,.34);
  border-radius: 14px;
  background: rgba(231,157,74,.08);
}
.duplicate-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: start;
}
.duplicate-main strong {
  display: block;
  color: var(--ink);
}
.duplicate-main span,
.duplicate-main p {
  display: block;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.duplicate-existing {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.duplicate-existing b {
  color: #ffd89a;
  font-size: 12px;
}
.duplicate-existing-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(3,15,24,.36);
}
.duplicate-existing-row span {
  color: var(--ink2);
  font-size: 12px;
}
.lead-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 16px 0;
}
.lead-insight-panel {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(13,35,52,.72);
}
.lead-insight-panel.wide {
  grid-column: 1 / -1;
}
.lead-insight-list {
  display: grid;
  gap: 10px;
}
.lead-insight-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  background: rgba(3,15,24,.46);
}
.lead-insight-row > * {
  position: relative;
  z-index: 1;
}
.lead-insight-row strong {
  display: block;
  color: var(--ink);
  font-size: 14px;
}
.lead-insight-row span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}
.lead-insight-row b {
  color: var(--blue);
  font-size: 18px;
}
.lead-insight-row i {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--brand));
}
.lead-source-map {
  margin: 16px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(13,35,52,.72);
}
.source-map-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.source-map-tools .inline-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.source-map-tools select {
  width: auto;
  min-width: 128px;
  padding: 7px 10px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(3,15,24,.7);
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}
.source-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.source-summary-card {
  padding: 12px;
  border-radius: 14px;
  background: rgba(3,15,24,.46);
  border: 1px solid rgba(255,255,255,.055);
}
.source-summary-card span,
.source-summary-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}
.source-summary-card strong {
  display: block;
  margin: 6px 0 4px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.15;
}
.source-summary-card.danger strong { color: var(--red); }
.source-summary-card.warn strong { color: var(--yellow); }
.source-summary-card.good strong { color: var(--blue); }
.source-summary-card.deep strong { color: var(--green); }
.school-type-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}
.school-type-chip {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 4px 10px;
  padding: 11px 12px;
  border-radius: 14px;
  background: rgba(3,15,24,.36);
  border: 1px solid rgba(255,255,255,.06);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.school-type-chip:hover {
  transform: translateY(-1px);
  background: rgba(32,183,216,.08);
  border-color: rgba(32,183,216,.32);
}
.school-type-chip.active {
  background: rgba(32,183,216,.13);
  border-color: rgba(32,183,216,.5);
  box-shadow: inset 0 0 0 1px rgba(32,183,216,.18);
}
.school-type-chip strong {
  color: var(--ink);
  font-size: 13px;
}
.school-type-chip b {
  color: var(--blue);
  font-size: 24px;
  line-height: 1;
}
.school-type-chip span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 12px;
}
.school-type-chip.kindergarten { border-left: 3px solid var(--yellow); }
.school-type-chip.primary { border-left: 3px solid var(--blue); }
.school-type-chip.middle { border-left: 3px solid var(--green); }
.school-type-chip.all { border-left: 3px solid var(--purple); }
.source-suggestion-panel {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid rgba(231,157,74,.28);
  border-left: 3px solid var(--yellow);
  border-radius: 14px;
  background: rgba(231,157,74,.07);
}
.source-suggestion-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.source-suggestion-card {
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(3,15,24,.42);
  border: 1px solid rgba(255,255,255,.06);
}
.source-suggestion-card strong,
.source-suggestion-card span,
.source-suggestion-card small {
  display: block;
}
.source-suggestion-card strong {
  color: var(--ink);
  font-size: 13px;
}
.source-suggestion-card span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}
.source-suggestion-card small {
  margin-top: 6px;
  font-weight: 900;
}
.source-suggestion-card.danger small { color: var(--red); }
.source-suggestion-card.warn small { color: var(--yellow); }
.source-suggestion-card.good small { color: var(--blue); }
.source-suggestion-card.deep small { color: var(--green); }
.source-map-list {
  display: grid;
  gap: 10px;
}
.source-school-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.2fr);
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 14px;
  background: rgba(3,15,24,.42);
  border: 1px solid rgba(255,255,255,.06);
}
.source-school-row.danger { border-left: 3px solid var(--red); }
.source-school-row.warn { border-left: 3px solid var(--yellow); }
.source-school-row.good { border-left: 3px solid var(--blue); }
.source-school-row.deep { border-left: 3px solid var(--green); }
.source-school-main {
  position: relative;
  overflow: hidden;
  padding-bottom: 8px;
}
.source-school-main strong {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  font-size: 15px;
}
.school-type-tag {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(32,183,216,.11);
  color: var(--blue);
  font-style: normal;
  font-size: 11px;
  font-weight: 900;
}
.source-school-main span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
}
.source-school-main i {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--yellow));
}
.source-grade-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}
.source-grade-chips span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border-radius: 999px;
  background: rgba(32,183,216,.08);
  color: #c9f6ff;
  font-size: 12px;
  font-weight: 800;
}
.source-grade-chips span.danger { background: rgba(255,111,123,.12); color: #ffb5bc; }
.source-grade-chips span.warn { background: rgba(231,157,74,.14); color: #ffd89a; }
.source-grade-chips span.good { background: rgba(32,183,216,.12); color: #a8eaff; }
.source-grade-chips span.deep { background: rgba(54,194,117,.12); color: #9bf0bd; }
.source-grade-chips b {
  color: var(--blue);
}
.source-grade-chips em {
  color: var(--yellow);
  font-style: normal;
  font-size: 11px;
}
.source-grade-chips small {
  color: var(--muted);
  font-size: 10px;
}
.school-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.school-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(32,183,216,.07), rgba(255,255,255,.018)), rgba(13,35,52,.72);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.school-card:hover {
  transform: translateY(-2px);
  border-color: rgba(32,183,216,.42);
  background: linear-gradient(135deg, rgba(32,183,216,.11), rgba(255,255,255,.025)), rgba(13,35,52,.82);
}
.school-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}
.school-card-head strong {
  font-size: 17px;
  color: var(--ink);
}
.school-card-head span {
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(32,183,216,.12);
  color: #a8eaff;
  font-size: 12px;
  font-weight: 900;
}
.school-card-head .school-class-total {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  border: 1px solid rgba(32,183,216,.36);
  background: rgba(32,183,216,.14);
  color: #35d4f0;
  white-space: nowrap;
}
.school-card-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.school-card-stats div {
  padding: 10px 8px;
  border-radius: 12px;
  background: rgba(3,15,24,.42);
}
.school-card-stats b {
  display: block;
  color: var(--ink);
  font-size: 20px;
}
.school-card-stats span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
}
.school-card-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.school-location-line {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}
.school-location-line.ok {
  border: 1px solid rgba(54,194,117,.26);
  background: rgba(54,194,117,.1);
  color: #9bf0bd;
}
.school-location-line.unset {
  border: 1px solid rgba(226,170,56,.24);
  background: rgba(226,170,56,.1);
  color: #ffd58a;
}
.school-grade-mini {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.school-grade-mini span {
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(32,183,216,.08);
  color: #a8eaff;
  font-size: 11px;
  font-weight: 800;
}
.school-card-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.school-location-editor {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(54,194,117,.2);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(54,194,117,.08), rgba(32,183,216,.04)), rgba(3,15,24,.28);
}
.school-location-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.school-location-head strong {
  display: block;
  color: var(--ink);
  font-size: 14px;
}
.school-location-head span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.school-location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.school-grade-editor {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 14px;
  background: rgba(3,15,24,.28);
}
.school-grade-editor .panel-head {
  margin-bottom: 4px;
}
.school-grade-row {
  display: grid;
  grid-template-columns: 90px 1fr 1fr minmax(130px, auto);
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.025);
}
.school-grade-row.hidden-grade-row {
  display: none;
}
.school-grade-row strong {
  color: var(--ink);
}
.school-grade-total {
  color: var(--cyan);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

/* ── FORM ────────────────────────────────────── */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.form-grid .wide { grid-column: 1 / -1; }
.class-intensive-fields .field-title {
  display: block;
  margin-bottom: 9px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.class-weekday-checks {
  display: grid;
  grid-template-columns: repeat(7, minmax(64px, 1fr));
  gap: 8px;
}
.class-weekday-checks label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 42px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255,255,255,.025);
  color: var(--ink);
  cursor: pointer;
}
.class-weekday-checks input { width: auto; margin: 0; accent-color: var(--cyan); }

@media (max-width: 760px) {
  .class-weekday-checks { grid-template-columns: repeat(4, minmax(64px, 1fr)); }
}

.grid-2 {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr);
  gap: 18px;
}

.system-config-layout .panel {
  align-self: start;
}

.stats-grid.compact {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.stats-grid.compact .stat-card {
  border: 1px solid rgba(113, 176, 214, .18);
  background: rgba(13, 31, 45, .72);
  border-radius: 14px;
  padding: 16px;
}

.stats-grid.compact .stat-card span,
.stats-grid.compact .stat-card small {
  display: block;
  color: var(--muted);
}

.stats-grid.compact .stat-card strong {
  display: block;
  margin: 8px 0 4px;
  font-size: 22px;
  color: var(--text);
}

.system-settings-card {
  max-width: 980px;
  margin-bottom: 20px;
}

.system-guide {
  margin: 16px 0 20px;
  padding: 16px 18px;
  border: 1px solid rgba(32,183,216,.28);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(32,183,216,.12), rgba(75,135,255,.07));
  color: var(--ink2);
  line-height: 1.8;
}

.system-guide strong {
  color: var(--ink);
}

.settings-label {
  margin-bottom: 10px;
}

.provider-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.provider-card {
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(113,176,214,.22);
  border-radius: 14px;
  background: rgba(8,22,34,.74);
  color: var(--ink);
  padding: 14px 16px;
  text-align: left;
  cursor: pointer;
  transition: transform .14s, border-color .14s, background .14s, box-shadow .14s;
}

.provider-card:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.5);
  background: rgba(32,183,216,.08);
}

.provider-card.active {
  border-color: rgba(32,183,216,.95);
  box-shadow: 0 0 0 1px rgba(32,183,216,.34), 0 16px 32px rgba(32,183,216,.12);
  background: rgba(32,183,216,.13);
}

.provider-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(32,183,216,.22), rgba(234,160,74,.18));
  color: var(--accent);
  font-weight: 900;
}

.provider-card strong,
.provider-card small {
  display: block;
}

.provider-card small {
  margin-top: 4px;
  color: var(--muted);
}

.settings-form-grid small {
  color: var(--muted);
  font-weight: 600;
}

.ok-text {
  color: var(--ok);
}

.warn-text {
  color: var(--warn);
}

.settings-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.settings-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.settings-feature-grid div {
  padding: 16px;
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 14px;
  background: rgba(8,22,34,.58);
}

.settings-feature-grid strong,
.settings-feature-grid span {
  display: block;
}

.settings-feature-grid span {
  margin-top: 7px;
  color: var(--muted);
  line-height: 1.6;
}

.coach-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  margin-bottom: 18px;
  border: 1px solid rgba(32,183,216,.22);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(32,183,216,.13), rgba(233,160,77,.07));
}

.coach-hero h3 {
  margin: 6px 0;
  font-size: 24px;
}

.coach-hero p {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.coach-eyebrow {
  color: var(--warn);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
}

.coach-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 18px 0;
}

.coach-tabs button {
  border: 1px solid rgba(113,176,214,.2);
  border-radius: 999px;
  background: rgba(16,34,53,.78);
  color: var(--muted);
  padding: 10px 16px;
  font-weight: 800;
  cursor: pointer;
  transition: border-color .14s, background .14s, color .14s, transform .14s;
}

.coach-tabs button:hover,
.coach-tabs button.active {
  color: var(--text);
  border-color: rgba(32,183,216,.7);
  background: rgba(32,183,216,.13);
  transform: translateY(-1px);
}

.coach-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.coach-grid .wide {
  grid-column: 1 / -1;
}

.coach-focus-list {
  display: grid;
  gap: 12px;
}

.coach-focus-list div {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 14px;
  background: rgba(8,22,34,.58);
}

.coach-focus-list b {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 9px;
  background: rgba(32,183,216,.16);
  color: var(--accent);
}

.knowledge-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0 18px;
}

.knowledge-category-grid button {
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 14px;
  background: rgba(8,22,34,.58);
  color: var(--text);
  padding: 15px;
  text-align: left;
  cursor: pointer;
  transition: border-color .14s, background .14s, transform .14s;
}

.knowledge-category-grid button:hover {
  border-color: rgba(32,183,216,.55);
  background: rgba(32,183,216,.08);
  transform: translateY(-1px);
}

.knowledge-category-grid strong,
.knowledge-category-grid span {
  display: block;
}

.knowledge-category-grid span {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.knowledge-list {
  display: grid;
  gap: 12px;
}

.knowledge-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(113,176,214,.16);
  border-left: 4px solid var(--accent);
  border-radius: 16px;
  background: rgba(8,22,34,.58);
}

.knowledge-card.disabled {
  opacity: .58;
  border-left-color: var(--muted);
}

.knowledge-card strong,
.knowledge-card small {
  display: block;
}

.knowledge-card p {
  margin: 7px 0;
  color: var(--muted);
  line-height: 1.65;
}

.knowledge-card small {
  color: var(--muted);
}

.knowledge-actions {
  display: flex;
  gap: 8px;
}

.knowledge-health {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.knowledge-health div {
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(113,176,214,.16);
  background: rgba(8,22,34,.58);
}

.knowledge-health b,
.knowledge-health span {
  display: block;
}

.knowledge-health .ok b {
  color: var(--ok);
}

.knowledge-health .warn b {
  color: var(--warn);
}

.coach-stage .panel {
  min-width: 0;
}

.dial-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 14px 0 20px;
  padding: 10px 12px;
  border: 1px solid rgba(113,176,214,.16);
  border-radius: 14px;
  background: rgba(8,22,34,.5);
  color: var(--muted);
  font-weight: 800;
}

.dial-pager button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
label { display: grid; gap: 5px; font-weight: 700; font-size: 12.5px; color: var(--ink2); }
.check-field {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r2);
  background: rgba(255,255,255,.025);
  color: var(--ink2);
  cursor: pointer;
  transition: border-color .14s, background .14s, color .14s;
}
.check-field:hover {
  border-color: rgba(32,183,216,.32);
  background: rgba(32,183,216,.06);
  color: var(--ink);
}
.check-field input {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}
.check-field span {
  line-height: 1.2;
}
.check-field:has(input:checked) {
  border-color: rgba(32,183,216,.45);
  background: rgba(32,183,216,.1);
  color: #c9f6ff;
}
.inline-create-card {
  grid-column: 1 / -1;
  padding: 14px;
  border: 1px solid rgba(32,183,216,.28);
  border-radius: var(--r);
  background: rgba(32,183,216,.055);
  box-shadow: inset 0 0 0 1px rgba(32,183,216,.04);
}
.inline-create-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.inline-create-head strong {
  font-size: 14px;
  color: var(--ink);
}
.inline-create-head button {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255,255,255,.035);
  color: var(--muted);
  padding: 5px 10px;
  font-weight: 800;
}
.inline-create-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.hint {
  padding: 12px 14px; border-radius: var(--r2);
  background: rgba(212,139,71,.08); border: 1px solid rgba(212,139,71,.25);
  color: #ffd9b6; font-size: 13px; margin: 8px 0;
}
.hint.info {
  background: rgba(32,183,216,.06); border-color: rgba(32,183,216,.2); color: #8beaff;
}

/* ── CARDS ───────────────────────────────────── */
.card { background: var(--card); border: 1px solid var(--line2); border-radius: var(--r); padding: 18px; }

.grid    { display: grid; gap: 14px; }
.g2      { grid-template-columns: repeat(2,1fr); }
.g3      { grid-template-columns: repeat(3,1fr); }
.g4      { grid-template-columns: repeat(4,1fr); }
.card h3 { font-size: 15px; font-weight: 900; margin-bottom: 6px; }
.card p  { font-size: 12px; color: var(--muted); margin-bottom: 10px; }

/* ── PROGRESS BAR ────────────────────────────── */
.bar { height: 6px; border-radius: 999px; background: rgba(255,255,255,.06); overflow: hidden; margin: 8px 0; }
.bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--blue), var(--brand)); }

/* ── RECORDS ─────────────────────────────────── */
.records { display: grid; gap: 8px; }
.record {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
  padding: 12px 14px;
  background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--r2); transition: background .12s;
}
.record:hover { background: rgba(255,255,255,.04); }
.record strong { display: block; font-size: 13.5px; }
.record p { margin: 3px 0 0; font-size: 12px; color: var(--muted); }
.lead-import-note {
  border-color: rgba(231,157,74,.26);
  background: rgba(231,157,74,.07);
}
.lead-import-note strong {
  color: var(--yellow);
}

/* ── CONSULTANT COACH ───────────────────────── */
.coach-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .75fr);
  gap: 16px;
  margin-top: 16px;
}
.coach-kpis {
  margin-bottom: 16px;
}
.coach-concerns {
  display: grid;
  gap: 10px;
}
.coach-concern {
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border-radius: 12px;
  background: rgba(3,15,24,.42);
  border: 1px solid rgba(255,255,255,.055);
}
.coach-concern strong,
.coach-concern span {
  position: relative;
  z-index: 1;
}
.coach-concern span {
  color: var(--yellow);
  font-weight: 900;
}
.coach-concern i {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--yellow));
}
.coach-record-list {
  display: grid;
  gap: 10px;
}
.coach-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(3,15,24,.42);
  border: 1px solid rgba(255,255,255,.055);
}
.coach-record.good { border-left: 3px solid var(--green); }
.coach-record.warn { border-left: 3px solid var(--yellow); }
.coach-record-main strong {
  display: block;
  color: var(--ink);
}
.coach-record-main strong span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.coach-record-main p {
  margin: 6px 0;
  color: var(--ink2);
  font-size: 13px;
  line-height: 1.65;
}
.coach-record-main small {
  display: block;
  color: var(--green);
  line-height: 1.6;
}
.coach-record-main audio {
  width: 100%;
  max-width: 420px;
  height: 32px;
  margin-top: 8px;
}
.coach-record-side {
  display: grid;
  align-content: start;
  gap: 8px;
  justify-items: end;
}
.coach-record-side b {
  color: var(--blue);
  font-size: 20px;
}
.coach-record-side small {
  color: var(--muted);
  text-align: right;
  font-size: 11px;
}

/* ── TRIAL REMINDERS ───────────────────────── */
.trial-reminder-panel {
  margin-bottom: 16px;
}
.trial-reminder-list {
  display: grid;
  gap: 10px;
}
.trial-reminder-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(3,15,24,.42);
  border: 1px solid rgba(255,255,255,.055);
  border-left: 3px solid var(--yellow);
}
.trial-reminder-item.urgent {
  border-left-color: var(--red);
}
.trial-reminder-item strong,
.trial-reminder-item span,
.trial-reminder-item p {
  display: block;
}
.trial-reminder-item strong {
  color: var(--ink);
}
.trial-reminder-item span,
.trial-reminder-item p {
  color: var(--muted);
  font-size: 12px;
}
.trial-reminder-item p {
  margin: 5px 0 0;
}
.trial-reminder-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* ── FINANCE ────────────────────────────────── */
.finance-actions-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 10px;
}
.finance-actions-grid button {
  justify-content: center;
  min-height: 44px;
}
.finance-tables {
  margin-top: 14px;
  align-items: start;
}
.finance-tables .panel {
  min-width: 0;
}

@media print {
  body { background: #fff; color: #111; }
  .sidebar, .mobile-appbar, .mobile-tabbar, .modal-close, .actions { display: none !important; }
  .modal { position: static; display: block; background: #fff; padding: 0; }
  .modal-card { width: 100%; max-height: none; box-shadow: none; border: 0; color: #111; background: #fff; }
  .card, .panel, .table-wrap { border-color: #ddd; background: #fff; color: #111; }
  table th, table td { color: #111; border-color: #ddd; }
}

/* ── PAGE TITLE legacy rules (removed — now defined above near FILTER) ── */

/* KPI legacy */
.kpi span   { display: block; color: var(--muted); font-size: 12px; }
.kpi b      { display: block; font-size: 28px; font-weight: 900; margin-top: 6px; }
.kpi small  { font-size: 12px; color: var(--green); font-weight: 800; }

/* ── MODAL ───────────────────────────────────── */
.modal {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(0,0,0,.65);
  display: grid; place-items: center; padding: 22px;
}
.modal-card {
  width: min(840px,96vw); max-height: 90vh;
  overflow: auto;
  background: #091623;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(0,0,0,.55);
  padding: 28px; position: relative;
}
.modal-card h2 { font-size: 20px; font-weight: 900; margin-bottom: 18px; }
.modal-close, .close {
  position: absolute; right: 18px; top: 16px;
  border: 1px solid var(--line); border-radius: var(--r2);
  background: transparent; color: var(--muted);
  font-size: 20px; width: 38px; height: 38px;
  display: grid; place-items: center; transition: all .12s;
  z-index: 20;
}
.modal-close:hover, .close:hover { color: var(--ink); background: rgba(255,255,255,.06); }

/* ── TOAST ───────────────────────────────────── */
.toast {
  position: fixed; right: 24px; bottom: 24px; z-index: 200;
  background: #0d2033; border: 1px solid var(--blue);
  border-radius: var(--r); padding: 13px 18px;
  box-shadow: var(--shadow); font-size: 13.5px;
  animation: popUp .18s ease;
}
@keyframes popUp { from { opacity:0; transform:translateY(8px); } }

/* ── EMPTY ───────────────────────────────────── */
.empty {
  color: var(--muted); padding: 28px 16px; text-align: center;
  border: 1px dashed rgba(255,255,255,.08); border-radius: var(--r); font-size: 13px;
}

/* ── MOBILE APP SHELL ───────────────────────── */
.mobile-appbar,
.mobile-tabbar,
.mobile-more-sheet,
.mobile-page-actions,
.mobile-stage-scroll,
.lead-mobile-list,
.field-mobile-list,
.teach-mobile-block {
  display: none;
}

.mobile-empty {
  display: grid;
  place-items: center;
  gap: 4px;
  min-height: 96px;
  padding: 22px;
  border: 1px dashed rgba(32,183,216,.22);
  border-radius: 16px;
  background: rgba(255,255,255,.018);
  color: var(--ink2);
  text-align: center;
}
.mobile-empty strong { color: var(--ink); font-size: 15px; }
.mobile-empty span { color: var(--muted); font-size: 12px; }

/* ── RESPONSIVE ──────────────────────────────── */
@media (max-width: 960px) {
  body { background: #06101a; }
  .app-shell { display: block; min-height: 100vh; padding-top: calc(56px + env(safe-area-inset-top)); }
  .sidebar { display: none; }
  .mobile-appbar {
    position: fixed;
    z-index: 70;
    top: 0;
    left: 0;
    right: 0;
    height: calc(56px + env(safe-area-inset-top));
    padding: calc(8px + env(safe-area-inset-top)) 14px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: rgba(5,13,22,.96);
    border-bottom: 1px solid var(--line2);
    backdrop-filter: blur(14px);
  }
  .mobile-appbar strong {
    min-width: 0;
    font-size: 17px;
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-appbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
  }
  .mobile-appbar select {
    width: 96px;
    height: 38px;
    padding: 0 28px 0 10px;
    border-radius: 12px;
    font-size: 12px;
  }
  .mobile-appbar button {
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.04);
    color: var(--ink);
    font-weight: 800;
  }
  .mobile-tabbar {
    position: fixed;
    z-index: 75;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: calc(60px + env(safe-area-inset-bottom));
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 6px;
    background: rgba(5,13,22,.97);
    border-top: 1px solid var(--line2);
    box-shadow: 0 -16px 30px rgba(0,0,0,.24);
  }
  .mobile-tabbar button {
    min-width: 0;
    border: 0;
    border-radius: 14px;
    background: transparent;
    color: var(--muted);
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 2px;
    font-weight: 900;
    transition: all .16s ease;
  }
  .mobile-tabbar span {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: rgba(255,255,255,.04);
    color: var(--ink2);
    font-size: 12px;
  }
  .mobile-tabbar b { font-size: 11px; line-height: 1; }
  .mobile-tabbar button.active {
    color: #c9f6ff;
    background: rgba(32,183,216,.11);
  }
  .mobile-tabbar button.active span {
    color: #07111c;
    background: linear-gradient(135deg, var(--blue), #66d9ef);
  }
  .content-wrap { overflow-x: hidden; }
  main { padding: 18px 14px calc(84px + env(safe-area-inset-bottom)); max-width: none; }
  .page-title {
    margin-bottom: 16px;
    padding: 16px 0 4px;
  }
  .page-title-left h2 { font-size: 28px; }
  .page-title .actions { display: none; }
  .content-wrap { overflow-x: hidden; }
  .kpi-grid      { grid-template-columns: repeat(2,1fr); }
  .panel-grid    { grid-template-columns: 1fr; }
  .g3, .g4       { grid-template-columns: repeat(2,1fr); }
  .form-grid     { grid-template-columns: 1fr; }
  .grid-2        { grid-template-columns: 1fr; }
  .stats-grid.compact { grid-template-columns: 1fr; }
  .provider-cards { grid-template-columns: 1fr; }
  .settings-feature-grid { grid-template-columns: 1fr; }
  .settings-actions { flex-direction: column; align-items: stretch; }
  .coach-hero { flex-direction: column; align-items: stretch; }
  .coach-grid { grid-template-columns: 1fr; }
  .knowledge-category-grid { grid-template-columns: 1fr 1fr; }
  .knowledge-card { grid-template-columns: 1fr; }
  .knowledge-actions { flex-wrap: wrap; }
  .knowledge-health { grid-template-columns: 1fr; }
  .dial-pager { flex-wrap: wrap; }
  .mobile-page-actions {
    display: grid;
    gap: 10px;
    position: sticky;
    top: calc(56px + env(safe-area-inset-top));
    z-index: 35;
    padding: 10px 0;
    background: linear-gradient(180deg, #06101a 0%, rgba(6,16,26,.92) 78%, rgba(6,16,26,0) 100%);
  }
  .mobile-page-actions .btn-primary,
  .mobile-page-actions .btn-ghost {
    width: 100%;
    min-height: 46px;
    justify-content: center;
    border-radius: 14px;
  }
  .leads-workbench { display: none; }
  .desktop-stage-grid,
  .desktop-table { display: none; }
  .mobile-stage-scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 0 12px;
    scrollbar-width: none;
  }
  .mobile-stage-scroll::-webkit-scrollbar { display: none; }
  .stage-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(32,183,216,.2);
    border-radius: 999px;
    background: rgba(15,31,46,.88);
    color: var(--ink2);
    font-weight: 900;
    font-size: 12px;
  }
  .stage-pill span {
    color: #8beaff;
  }
  .stage-pill.active {
    color: var(--ink);
    border-color: rgba(32,183,216,.48);
    background: rgba(32,183,216,.16);
  }
  .lead-mobile-list,
  .field-mobile-list,
  .teach-mobile-block {
    display: grid;
    gap: 12px;
  }
  .lead-mobile-card,
  .work-mobile-card,
  .schedule-mobile-card {
    border: 1px solid rgba(32,183,216,.14);
    border-radius: 18px;
    background:
      linear-gradient(180deg, rgba(15,31,46,.96), rgba(10,22,34,.98)),
      var(--card);
    box-shadow: 0 10px 26px rgba(0,0,0,.18);
    transition: transform .14s ease, border-color .14s ease, background .14s ease;
  }
  .lead-mobile-card:hover,
  .work-mobile-card:hover,
  .schedule-mobile-card:hover {
    transform: translateY(-1px);
    border-color: rgba(32,183,216,.38);
    background: linear-gradient(180deg, rgba(20,43,62,.98), rgba(11,24,37,.98));
  }
  .lead-mobile-card { padding: 15px; }
  .lead-mobile-head,
  .work-mobile-head,
  .schedule-mobile-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
  }
  .lead-mobile-head strong,
  .work-mobile-head strong,
  .schedule-mobile-card strong {
    display: block;
    font-size: 16px;
    font-weight: 900;
  }
  .lead-mobile-head span,
  .work-mobile-head span,
  .schedule-mobile-card span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 2px;
  }
  .lead-mobile-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin: 12px 0;
  }
  .lead-mobile-meta span,
  .work-mobile-tags span {
    min-width: 0;
    padding: 7px 9px;
    border-radius: 10px;
    background: rgba(255,255,255,.035);
    color: var(--ink2);
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .lead-mobile-note {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(212,139,71,.08);
    color: #ffd9b6;
    font-size: 12px;
  }
  .lead-mobile-actions {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
  }
  .lead-mobile-actions .btn-ghost {
    min-height: 38px;
    justify-content: center;
    padding: 0 8px;
  }
  .work-mobile-card { padding: 15px; }
  .work-mobile-tags {
    display: flex;
    gap: 8px;
    margin: 10px 0;
  }
  .work-mobile-metrics {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
  }
  .work-mobile-metrics b {
    padding: 10px;
    border-radius: 12px;
    background: rgba(32,183,216,.08);
    color: var(--ink);
    font-size: 18px;
  }
  .work-mobile-metrics small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
  }
  .work-mobile-card p {
    margin-top: 10px;
    color: var(--muted);
    font-size: 12px;
  }
  .teach-mobile-actions {
    grid-template-columns: 1fr 110px;
  }
  .teach-ops-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .class-work-card {
    grid-template-columns: 1fr;
  }
  .class-work-actions {
    justify-content: stretch;
  }
  .class-work-actions button {
    flex: 1;
  }
  .teach-mobile-block h3 {
    margin: 4px 0 0;
    font-size: 15px;
    font-weight: 900;
    color: var(--ink2);
  }
  .teach-mobile-block h3 span {
    color: var(--muted);
    font-size: 12px;
    margin-left: 6px;
  }
  .schedule-filterbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .class-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .recruit-action-grid {
    grid-template-columns: 1fr;
  }
  .schedule-mobile-list {
    display: grid;
    gap: 10px;
  }
  .schedule-mobile-card {
    padding: 14px;
    align-items: center;
  }
  .schedule-mobile-card p {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
  }
  .schedule-mobile-card .btn-primary {
    width: 76px;
    height: 42px;
    justify-content: center;
    flex-shrink: 0;
  }
  .mobile-more-sheet {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: grid;
    align-items: end;
  }
  .mobile-sheet-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0,0,0,.54);
  }
  .mobile-sheet-panel {
    position: relative;
    z-index: 1;
    max-height: 85vh;
    padding: 10px 16px calc(18px + env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
    border: 1px solid var(--line);
    border-bottom: 0;
    background: #091623;
    box-shadow: 0 -24px 60px rgba(0,0,0,.48);
  }
  .mobile-sheet-handle {
    width: 42px;
    height: 4px;
    border-radius: 999px;
    margin: 0 auto 14px;
    background: rgba(255,255,255,.2);
  }
  .mobile-sheet-panel h3 {
    font-size: 17px;
    margin-bottom: 12px;
  }
  .mobile-more-list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 10px;
  }
  .mobile-more-list button {
    min-height: 78px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,.035);
    color: var(--ink);
    text-align: left;
  }
  .mobile-more-list span {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 10px;
    background: rgba(32,183,216,.12);
    color: #8beaff;
    font-weight: 900;
  }
  .mobile-more-list strong,
  .mobile-more-list small {
    display: block;
  }
  .mobile-more-list strong { margin-top: 8px; font-size: 14px; }
  .mobile-more-list small { color: var(--muted); font-size: 11px; }
  .modal {
    place-items: end center;
    padding: 0;
  }
  .modal-card {
    width: 100vw;
    max-height: 85vh;
    border-radius: 22px 22px 0 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    padding: 28px 18px calc(20px + env(safe-area-inset-bottom));
  }
  .modal-card::before {
    content: "";
    display: block;
    width: 42px;
    height: 4px;
    border-radius: 999px;
    margin: -12px auto 16px;
    background: rgba(255,255,255,.2);
  }
  .modal-close {
    top: 16px;
    right: 16px;
  }
  .leads-actions { justify-content: flex-start; flex-wrap: wrap; }
  .leads-metrics { grid-template-columns: repeat(2,1fr); }
  .lead-insight-grid { grid-template-columns: 1fr; }
  .source-summary-grid { grid-template-columns: repeat(2,1fr); }
  .school-type-strip { grid-template-columns: 1fr; }
  .source-summary-card strong { font-size: 18px; }
  .source-school-main strong { flex-wrap: wrap; }
  .source-suggestion-list { grid-template-columns: 1fr; }
  .source-school-row { grid-template-columns: 1fr; }
  .source-grade-chips { justify-content: flex-start; }
  .coach-layout { grid-template-columns: 1fr; }
  .coach-record { grid-template-columns: 1fr; }
  .coach-record-side { justify-items: start; }
  .coach-record-side small { text-align: left; }
  .trial-reminder-item { align-items: flex-start; flex-direction: column; }
  .trial-reminder-actions { justify-content: flex-start; }
  .duplicate-main,
  .duplicate-existing-row { grid-template-columns: 1fr; }
  .alert-item { flex-wrap: wrap; }
  .alert-action { margin-left: 17px; }
  .stage-card-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 540px) {
  .kpi-grid, .g2, .g3, .g4 { grid-template-columns: 1fr; }
  .schedule-filterbar { grid-template-columns: 1fr; }
  .class-card-grid { grid-template-columns: 1fr; }
  .teach-ops-grid { grid-template-columns: 1fr; }
  .leads-metrics, .stage-card-grid { grid-template-columns: repeat(2,1fr); }
  .school-card-stats { grid-template-columns: repeat(2,1fr); }
  .school-grade-row { grid-template-columns: 1fr; }
  .leads-copy h2 { font-size: 26px; }
  .lead-empty { padding: 26px 16px; }
  .lead-mobile-meta { grid-template-columns: 1fr; }
  .source-summary-grid { grid-template-columns: 1fr; }
.mobile-more-list { grid-template-columns: 1fr 1fr; }
}

/* 招生工作台 · 电邀中心 */
.callcenter-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, .75fr);
  gap: 16px;
  margin-top: 18px;
  align-items: start;
}
.callcenter-side {
  display: grid;
  gap: 16px;
}
.call-priority-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -2px 0 14px;
}
.priority-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  border: 1px solid rgba(255,255,255,.09);
}
.priority-badge.danger { color: #ffd7df; background: rgba(255,86,116,.18); border-color: rgba(255,86,116,.38); }
.priority-badge.warn { color: #ffe1ad; background: rgba(231,157,74,.18); border-color: rgba(231,157,74,.42); }
.priority-badge.mid { color: #fff2b5; background: rgba(244,190,74,.15); border-color: rgba(244,190,74,.34); }
.priority-badge.normal { color: #a8dfff; background: rgba(32,183,216,.12); border-color: rgba(32,183,216,.28); }
.call-queue-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.035), rgba(255,255,255,.015)),
    rgba(8, 26, 39, .72);
  box-shadow: 0 10px 32px rgba(0,0,0,.12);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.call-queue-card + .call-queue-card { margin-top: 12px; }
.call-queue-card:hover {
  transform: translateY(-2px);
  border-color: rgba(32,183,216,.48);
  background: linear-gradient(135deg, rgba(32,183,216,.10), rgba(255,255,255,.02));
}
.call-queue-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 18px 0 0 18px;
  background: var(--blue);
}
.call-queue-card.rank-1::before { background: #ff5a75; }
.call-queue-card.rank-2::before { background: var(--yellow); }
.call-queue-card.rank-3::before { background: #f5d565; }
.call-queue-main strong {
  display: inline-block;
  margin-left: 8px;
  font-size: 18px;
}
.call-queue-main p,
.call-queue-main small,
.call-queue-side span {
  color: var(--muted);
}
.call-queue-main p { margin: 8px 0 4px; }
.call-note {
  margin-top: 10px;
  padding: 9px 10px;
  border-radius: 12px;
  color: #d8f6ff;
  background: rgba(32,183,216,.08);
  border: 1px solid rgba(32,183,216,.16);
  font-size: 13px;
}
.call-queue-side {
  display: grid;
  justify-items: end;
  align-content: center;
  gap: 8px;
}
.call-queue-side b {
  font-size: 16px;
}
.call-record-row,
.reminder-row {
  align-items: center;
}
.reminder-row.high,
.reminder-row.urgent {
  border-color: rgba(231,157,74,.35);
  background: rgba(231,157,74,.07);
}
.today-reminders {
  margin: 0 0 16px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 18px;
  background: rgba(13, 35, 52, .62);
  overflow: hidden;
}
.today-reminders:empty {
  display: none;
}
.today-reminders .record {
  border-radius: 0;
  border-left-width: 3px;
  border-right: 0;
  border-bottom: 0;
  border-top-color: rgba(255,255,255,.05);
  background: transparent;
}
.today-reminders .record:hover {
  background: rgba(32,183,216,.06);
}
.field-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 10px;
  font-size: 15px;
  font-weight: 900;
  color: var(--blue);
}
.field-section-title.muted {
  color: var(--muted);
  margin-top: 20px;
}
.field-empty {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 28px;
  margin-bottom: 20px;
  border: 1px dashed rgba(32,183,216,.28);
  border-radius: 18px;
  background: rgba(13,35,52,.52);
  color: var(--muted);
}
.field-empty strong {
  color: var(--ink);
  font-size: 18px;
}
.field-plan-list {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
}
.field-datebar {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  padding: 14px;
  margin-bottom: 18px;
  border: 1px solid rgba(32,183,216,.18);
  border-radius: 16px;
  background: rgba(13,35,52,.64);
}
.field-datebar label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.field-datebar input {
  min-width: 170px;
}
.field-section-count {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  margin-left: 8px;
  border-radius: 999px;
  background: rgba(32,183,216,.12);
  color: var(--blue);
  font-size: 12px;
}
.field-plan-card {
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  border-radius: 14px;
  background: rgba(13,35,52,.72);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.field-plan-card:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.42);
  background: rgba(15,44,64,.82);
}
.field-plan-active {
  box-shadow: inset 0 0 0 1px rgba(32,183,216,.08);
}
.field-plan-done {
  background: rgba(17,45,54,.76);
}
.field-plan-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 8px;
}
.field-plan-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.field-plan-head strong {
  font-size: 16px;
}
.field-session {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.field-status-pill {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 9px;
  border: 1px solid;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.field-plan-meta,
.field-plan-note {
  color: var(--muted);
  font-size: 13px;
}
.field-plan-brief {
  display: grid;
  gap: 7px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(32,183,216,.16);
  border-radius: 12px;
  background: rgba(32,183,216,.055);
}
.field-plan-brief span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}
.field-plan-brief p {
  margin: 0;
  color: rgba(225,241,255,.78);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-wrap;
}
.field-plan-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 11px 0 8px;
  font-size: 14px;
}
.field-plan-stat-inputs {
  align-items: center;
}
.field-plan-stats strong {
  font-size: 18px;
}
.inline-link {
  border: 0;
  background: transparent;
  color: var(--blue);
  font-weight: 900;
  cursor: pointer;
}
.inline-link:hover {
  color: var(--green);
}
.field-plan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}
.field-checkin-photo {
  height: 64px;
  max-width: 140px;
  object-fit: cover;
  border-radius: 10px;
  margin-top: 8px;
  border: 1px solid var(--line);
}
.field-photo-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.field-photo-strip img,
.field-photo-gallery img {
  width: 92px;
  height: 68px;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 10px;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease;
}
.field-photo-strip img:hover,
.field-photo-gallery img:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.65);
}
.field-photo-strip span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 68px;
  border-radius: 10px;
  background: rgba(255,255,255,.05);
  color: var(--muted);
  font-weight: 900;
}
.field-photo-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}
.field-photo-gallery img {
  width: 100%;
  height: 120px;
}
.trial-filterbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.trial-filterbar button {
  font-size: 12px;
  padding: 6px 12px;
}
.plan-leads-box {
  border-top: 1px solid var(--line);
  padding-top: 12px;
  margin-top: 4px;
}
.plan-leads-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.plan-lead-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 9px;
  margin-bottom: 5px;
  background: rgba(255,255,255,.04);
  font-size: 13px;
}
.plan-lead-row small {
  color: var(--muted);
  margin-left: 6px;
}
.plan-leads-note {
  color: var(--muted);
  font-size: 12px;
  margin-top: 6px;
}
.dial-section-title {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 900;
}
.dial-section-title.warn {
  color: var(--red);
}
.dial-reminder-list,
.dial-lead-list {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
}
.dial-reminder,
.dial-lead-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(13,35,52,.72);
}
.dial-reminder {
  border-left: 3px solid var(--blue);
}
.dial-reminder.urgent { border-left-color: var(--red); }
.dial-reminder.high { border-left-color: var(--yellow); }
.dial-reminder strong,
.dial-lead-row strong {
  color: var(--ink);
}
.dial-reminder span,
.dial-reminder p,
.dial-lead-row p,
.dial-lead-name span {
  color: var(--muted);
}
.dial-reminder p,
.dial-lead-row p {
  margin: 4px 0 0;
  font-size: 12px;
}
.dial-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}
.dial-toolbar input {
  width: 190px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(3,15,24,.72);
  color: var(--ink);
}
.dial-stage-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.dial-stage-tabs button {
  font-size: 12px;
  padding: 6px 10px;
}
.dial-count {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
}
.dial-lead-row {
  border-left: 3px solid transparent;
}
.dial-lead-row.has-reminder {
  border-left-color: var(--red);
}
.dial-lead-name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}
.dial-lead-name em {
  font-style: normal;
  padding: 1px 7px;
  border-radius: 999px;
  color: var(--blue);
  background: rgba(32,183,216,.12);
  font-size: 11px;
  font-weight: 800;
}
.target-panel {
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(13,35,52,.72);
  margin-bottom: 16px;
}
.target-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 11px;
}
.target-head strong {
  font-size: 15px;
}
.target-head span {
  color: var(--muted);
  font-size: 12px;
}
.target-head button {
  margin-left: auto;
}
.target-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.target-badge {
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}
.target-badge.active {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.target-tip {
  color: var(--muted);
  font-size: 12px;
  margin-top: 8px;
}
.dial-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}
.dial-filter-row label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.dial-filter-row select {
  min-width: 150px;
  padding: 9px 10px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(3,15,24,.72);
  color: var(--ink);
}
.dial-filter-row > span {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
}
.dial-grade-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 8px;
}
.dial-grade-head > span {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--muted);
}
.dial-grade-head.grade-a > span { background: var(--red); }
.dial-grade-head.grade-b > span { background: var(--yellow); }
.dial-grade-head.grade-c > span { background: var(--muted); }
.dial-grade-head strong {
  font-size: 15px;
}
.dial-grade-head b {
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 12px;
  background: rgba(255,255,255,.06);
}
.dial-grade-head small,
.dial-grade-head em {
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
}
.dial-grade-head.grade-c {
  cursor: pointer;
}
.dial-grade-head.grade-c em {
  margin-left: auto;
}
.dial-urg {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 900;
}
.dial-urg.red { color: var(--red); }
.dial-urg.yellow { color: var(--yellow); }
.dial-urg.blue { color: var(--blue); }
.dial-urg.muted { color: var(--muted); }
@media (max-width: 1100px) {
  .callcenter-layout { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .call-queue-card { grid-template-columns: 1fr; }
  .call-queue-side { justify-items: start; }
}

/* 线索库重构样式 2026-07 */
.lead-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.lead-kpi {
  background: var(--card);
  border-radius: 12px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.lead-kpi::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--lk-accent, var(--blue));
  border-radius: 12px 12px 0 0;
}
.lead-kpi-label {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 5px;
  letter-spacing: .4px;
}
.lead-kpi-value {
  font-size: 30px;
  font-weight: 800;
  line-height: 1;
  color: var(--lk-accent, var(--ink));
}
.lead-kpi-note {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
}
.lead-kpi-action {
  cursor: pointer;
}
.lead-kpi-action:hover {
  border-color: rgba(255,111,123,.35);
  background: rgba(255,111,123,.045);
}
.lead-simple-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 2px 0 14px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(16, 36, 52, .72);
}
.lead-simple-summary > div {
  flex: 1;
  min-width: 0;
}
.lead-simple-summary strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  margin-bottom: 4px;
}
.lead-simple-summary span {
  color: var(--muted);
  font-size: 12px;
}
.lead-simple-summary button {
  border: 1px solid var(--border);
  background: rgba(255,255,255,.04);
  color: var(--ink2);
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all .16s ease;
  white-space: nowrap;
}
.lead-simple-summary button:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.42);
  background: rgba(32,183,216,.1);
  color: #8beaff;
}
.lead-simple-summary button.warn {
  border-color: rgba(255,111,123,.36);
  color: #ff9aa4;
  background: rgba(255,111,123,.08);
}
.lead-asset-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 12px;
  margin: 0 0 10px;
}
.lead-asset-card {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(12, 28, 42, .78);
  padding: 12px 14px;
}
.lead-asset-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.lead-asset-head span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.lead-asset-head b {
  color: var(--ink);
  font-size: 20px;
  line-height: 1;
}
.lead-asset-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}
.lead-health-cells {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.lead-health-cell {
  text-align: left;
  border: 1px solid rgba(255,255,255,.07);
  border-left: 3px solid var(--lhc, var(--blue));
  border-radius: 9px;
  background: rgba(255,255,255,.035);
  padding: 8px 9px;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
}
.lead-health-cell:hover {
  background: rgba(255,255,255,.065);
  border-color: rgba(255,255,255,.12);
  transform: translateY(-1px);
}
.lead-health-cell strong {
  display: block;
  color: var(--lhc, var(--blue));
  font-size: 19px;
  line-height: 1;
}
.lead-health-cell span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10.5px;
}
.lead-health-cell.blue { --lhc: var(--blue); }
.lead-health-cell.cyan { --lhc: #22d3ee; }
.lead-health-cell.green { --lhc: var(--green); }
.lead-health-cell.yellow { --lhc: var(--yellow); }
.lead-health-cell.purple { --lhc: #8b7cf6; }
.lead-health-cell.red { --lhc: var(--red); }
.lead-roi-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11.5px;
}
.lead-roi-table th {
  padding: 3px 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  text-align: left;
}
.lead-roi-table td {
  padding: 5px 6px;
  border-top: 1px solid rgba(255,255,255,.07);
  color: var(--ink2);
}
.lead-roi-table tr {
  cursor: pointer;
}
.lead-roi-table tbody tr:hover td {
  background: rgba(32,183,216,.08);
}
.lead-roi-table b {
  color: var(--ink);
}
.lead-roi-table strong.good { color: var(--green); }
.lead-roi-table strong.warn { color: var(--yellow); }
.lead-roi-table strong.bad { color: var(--red); }
.lead-lost-presets {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: -4px 0 10px;
}
.lead-lost-presets span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.lead-lost-presets button {
  border: 1px dashed rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  color: var(--ink2);
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.lead-lost-presets button.active {
  border-style: solid;
  border-color: rgba(139,124,246,.5);
  background: rgba(139,124,246,.12);
  color: #cac4ff;
}
.lead-action-stack {
  display: grid;
  gap: 8px;
}
.lead-pool-badge {
  font-size: 10px;
  padding: 1px 7px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
}
.lead-pool-badge.public {
  color: #8beaff;
  background: rgba(32,183,216,.12);
  border-color: rgba(32,183,216,.24);
}
.lead-pool-badge.private {
  color: #9bf0bd;
  background: rgba(54,194,117,.11);
  border-color: rgba(54,194,117,.24);
}
.lead-pool-badge.lost {
  color: #ff9aa4;
  background: rgba(255,111,123,.11);
  border-color: rgba(255,111,123,.24);
}
.lead-reactivate-tools {
  display: flex;
  gap: 10px;
  align-items: end;
  margin: 12px 0;
}
.lead-reactivate-tools label {
  flex: 1;
}
.lead-reactivate-list {
  display: grid;
  gap: 8px;
  max-height: 52vh;
  overflow: auto;
  padding-right: 4px;
}
.lead-reactivate-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255,255,255,.025);
  padding: 10px;
}
.lead-reactivate-row input {
  margin-top: 3px;
}
.lead-reactivate-row span {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.lead-reactivate-row strong {
  color: var(--ink);
  font-size: 13px;
}
.lead-reactivate-row small,
.lead-reactivate-row em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}
.today-command-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 14px;
}
.today-kpi {
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(12, 28, 42, .82);
  padding: 14px;
  cursor: pointer;
  transition: transform .15s, border-color .15s, background .15s;
}
.today-kpi:hover {
  transform: translateY(-1px);
  border-color: rgba(32,183,216,.35);
  background: rgba(32,183,216,.08);
}
.today-kpi span,
.today-kpi small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}
.today-kpi b {
  display: block;
  margin: 7px 0 4px;
  color: var(--ink);
  font-size: 30px;
  line-height: 1;
}
.today-kpi.blue b { color: var(--blue); }
.today-kpi.cyan b { color: #8beaff; }
.today-kpi.yellow b { color: var(--yellow); }
.today-kpi.red b { color: var(--red); }
.today-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, .75fr);
  gap: 14px;
  align-items: start;
}
.today-queue-panel,
.today-detail-panel {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(9, 23, 36, .82);
  padding: 14px;
}
.today-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.today-toolbar h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
}
.today-toolbar p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.today-tabs {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.today-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(255,255,255,.035);
  color: var(--ink2);
  padding: 7px 11px;
  cursor: pointer;
}
.today-tabs button.active {
  border-color: rgba(32,183,216,.45);
  background: rgba(32,183,216,.12);
  color: #8beaff;
}
.today-tabs span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.today-task-list {
  display: grid;
  gap: 8px;
}
.today-task-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 132px auto;
  gap: 10px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
  padding: 10px;
  cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s;
}
.today-task-card:hover,
.today-task-card.active {
  border-color: rgba(32,183,216,.34);
  background: rgba(32,183,216,.065);
}
.today-task-card.active {
  box-shadow: inset 3px 0 0 rgba(32,183,216,.9);
}
.today-task-priority {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.today-task-priority.blue { color: #8beaff; background: rgba(32,183,216,.12); }
.today-task-priority.green { color: #9bf0bd; background: rgba(54,194,117,.12); }
.today-task-priority.yellow,
.today-task-priority.amber { color: #ffd47a; background: rgba(226,170,56,.13); }
.today-task-priority.red { color: #ff9aa4; background: rgba(255,111,123,.13); }
.today-task-priority.purple { color: #cac4ff; background: rgba(139,124,246,.14); }
.today-task-main {
  min-width: 0;
}
.today-task-main strong {
  display: block;
  color: var(--ink);
  font-size: 14px;
}
.today-task-main span,
.today-task-main p,
.today-task-meta span {
  color: var(--muted);
  font-size: 12px;
}
.today-task-main p {
  margin: 4px 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.today-task-meta {
  display: grid;
  gap: 4px;
}
.today-task-meta b {
  color: var(--ink2);
  font-size: 13px;
}
.today-task-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.today-task-actions .btn-primary,
.today-task-actions .btn-ghost {
  padding: 6px 10px;
  font-size: 12px;
}
.today-detail-panel {
  position: sticky;
  top: 14px;
}
.empty-detail {
  display: grid;
  place-items: center;
  min-height: 280px;
  text-align: center;
  color: var(--muted);
}
.empty-detail strong {
  color: var(--ink);
  font-size: 18px;
}
.today-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.today-detail-head h2 {
  margin: 8px 0 4px;
  color: var(--ink);
  font-size: 22px;
}
.today-detail-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.today-detail-alert {
  margin-bottom: 10px;
  border: 1px solid rgba(255,111,123,.28);
  border-radius: 10px;
  background: rgba(255,111,123,.08);
  color: #ff9aa4;
  padding: 9px 10px;
  font-size: 12px;
}
.today-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.today-detail-grid div {
  min-width: 0;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  background: rgba(255,255,255,.025);
  padding: 9px 10px;
}
.today-detail-grid span,
.today-script-box span,
.today-note-box span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 5px;
}
.today-detail-grid b {
  display: block;
  color: var(--ink2);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.today-script-box,
.today-note-box {
  border-radius: 12px;
  padding: 11px 12px;
  margin-bottom: 10px;
  line-height: 1.6;
}
.today-script-box {
  border: 1px solid rgba(54,194,117,.2);
  background: rgba(54,194,117,.07);
}
.today-note-box {
  border: 1px solid rgba(32,183,216,.16);
  background: rgba(32,183,216,.055);
}
.today-script-box p,
.today-note-box p {
  margin: 0;
  color: var(--ink2);
  font-size: 13px;
}
.today-detail-actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.today-bottom-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.today-mini-card {
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(12, 28, 42, .75);
  padding: 13px 14px;
  cursor: pointer;
}
.today-mini-card:hover {
  border-color: rgba(32,183,216,.3);
  background: rgba(32,183,216,.075);
}
.today-mini-card b {
  display: block;
  color: var(--ink);
  margin-bottom: 5px;
}
.today-mini-card span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}
.lead-warning-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: -4px 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255,111,123,.28);
  border-radius: 12px;
  background: rgba(255,111,123,.075);
  color: var(--ink2);
}
.lead-warning-strip strong {
  color: #ff9aa4;
  white-space: nowrap;
}
.lead-warning-strip span {
  flex: 1;
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
}
.lead-pill-bar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.lead-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--ink2);
  font-size: 13px;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.lead-pill:hover {
  border-color: rgba(255,255,255,.18);
  color: var(--ink);
}
.lead-pill-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.lead-pill-count {
  font-size: 11px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  background: rgba(255,255,255,.08);
}
.lead-pill.active {
  font-weight: 600;
}
.lead-pill.active[data-stage="全部"],
.lead-pill.active[data-stage="新线索"] {
  border-color: rgba(32,183,216,.5);
  background: rgba(32,183,216,.1);
  color: #8beaff;
}
.lead-pill.active[data-stage="跟进中"] {
  border-color: rgba(226,170,56,.45);
  background: rgba(226,170,56,.1);
  color: #ffd47a;
}
.lead-pill.active[data-stage="已约试听"] {
  border-color: rgba(139,124,246,.45);
  background: rgba(139,124,246,.1);
  color: #cac4ff;
}
.lead-pill.active[data-stage="已报名"] {
  border-color: rgba(54,194,117,.45);
  background: rgba(54,194,117,.1);
  color: #9bf0bd;
}
.lead-pill.active[data-stage="已流失"] {
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.05);
  color: var(--muted);
}
.lead-pill.active[data-stage="公海"] {
  border-color: rgba(32,183,216,.45);
  background: rgba(32,183,216,.1);
  color: #8beaff;
}
.lead-pill.active[data-stage="私海"],
.lead-pill.active[data-stage="我的私海"] {
  border-color: rgba(54,194,117,.45);
  background: rgba(54,194,117,.1);
  color: #9bf0bd;
}
.lead-pill.active[data-stage="沉睡"] {
  border-color: rgba(226,170,56,.45);
  background: rgba(226,170,56,.1);
  color: #ffd47a;
}
.lead-pill.active[data-stage="流失池"] {
  border-color: rgba(255,111,123,.45);
  background: rgba(255,111,123,.1);
  color: #ff9aa4;
}
.lead-pill.active[data-stage="资料不全"] {
  border-color: rgba(255,111,123,.5);
  background: rgba(255,111,123,.1);
  color: #ff9aa4;
}
.lead-filter-row {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  align-items: center;
}
.lead-filter-row input {
  flex: 1;
  min-width: 0;
}
.lead-filter-row select {
  width: auto;
  flex-shrink: 0;
}
.lead-asset-table-wrap {
  overflow-x: auto;
  border-radius: 11px;
}
.lead-asset-table {
  width: 100%;
  min-width: 980px;
  border-collapse: separate;
  border-spacing: 0 4px;
  font-size: 12px;
}
.lead-asset-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  text-align: left;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  padding: 5px 9px;
  background: var(--bg);
}
.lead-asset-table th.right {
  text-align: right;
}
.lead-asset-table th.sel,
.lead-asset-table td.sel {
  width: 30px;
  text-align: center;
}
.lead-asset-table td {
  padding: 8px 9px;
  border-top: 1px solid rgba(255,255,255,.055);
  border-bottom: 1px solid rgba(255,255,255,.055);
  background: var(--card);
  color: var(--ink2);
  vertical-align: middle;
}
.lead-asset-table td:first-child {
  border-radius: 9px 0 0 9px;
}
.lead-asset-table td:last-child {
  border-radius: 0 9px 9px 0;
}
.lead-asset-table tbody tr:hover td {
  background: var(--card2);
}
.lead-asset-table b {
  display: block;
  color: var(--ink);
  font-size: 12.5px;
  line-height: 1.25;
}
.lead-asset-table small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.25;
}
.lead-asset-table td.warn {
  color: var(--yellow);
  font-weight: 800;
}
.lead-asset-table input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #8b7cf6;
}
.lead-row-pill,
.lead-row-status {
  display: inline-flex;
  align-items: center;
  max-width: 120px;
  border-radius: 6px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}
.lead-row-pill.blue { color: #8beaff; background: rgba(32,183,216,.13); }
.lead-row-pill.green { color: #9bf0bd; background: rgba(54,194,117,.12); }
.lead-row-pill.yellow { color: #ffd47a; background: rgba(226,170,56,.13); }
.lead-row-pill.purple { color: #cac4ff; background: rgba(139,124,246,.14); }
.lead-row-pill.muted { color: var(--muted); background: rgba(255,255,255,.06); }
.lead-row-status.green { color: var(--green); background: rgba(54,194,117,.12); }
.lead-row-status.cyan { color: #22d3ee; background: rgba(34,211,238,.13); }
.lead-row-status.yellow { color: var(--yellow); background: rgba(226,170,56,.13); }
.lead-row-status.purple { color: #cac4ff; background: rgba(139,124,246,.14); }
.lead-row-status.red { color: var(--red); background: rgba(255,111,123,.12); }
.lead-owner {
  font-size: 11.5px;
  font-weight: 800;
}
.lead-owner.me { color: var(--green); }
.lead-owner.pool { color: #22d3ee; }
.lead-owner.other,
.lead-owner.muted { color: var(--muted); }
.lead-row-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}
.lead-row-actions .btn-primary,
.lead-row-actions .btn-ghost {
  padding: 5px 10px;
  font-size: 11px;
  border-radius: 7px;
  white-space: nowrap;
}
.lead-row-lock {
  color: var(--muted);
  font-size: 10.5px;
}
.lead-batch-bar {
  position: sticky;
  bottom: 10px;
  display: none;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  border: 1px solid rgba(139,124,246,.42);
  border-radius: 12px;
  background: rgba(26, 34, 50, .96);
  box-shadow: 0 12px 36px rgba(0,0,0,.28);
  padding: 10px 14px;
  z-index: 5;
}
.lead-batch-bar.show {
  display: flex;
}
.lead-batch-bar strong {
  color: var(--ink);
  font-size: 12px;
}
.lead-batch-bar strong b {
  color: #cac4ff;
}
.lead-batch-bar span {
  flex: 1;
}
.lead-batch-bar .btn-primary,
.lead-batch-bar .btn-ghost {
  padding: 7px 13px;
  font-size: 11.5px;
}
.lead-card {
  background: var(--card);
  border-radius: 10px;
  border: 1px solid var(--border);
  border-left: 4px solid var(--lc-stage, var(--border));
  padding: 14px 16px;
  margin-bottom: 8px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  transition: background .15s, border-color .15s, transform .15s;
}
.lead-card:hover {
  background: rgba(255,255,255,.025);
  border-color: rgba(32,183,216,.18);
  transform: translateY(-1px);
}
.lead-card[data-lead-detail],
.lead-mobile-card[data-lead-detail],
tr[data-lead-detail] {
  cursor: pointer;
}
.lead-card:focus-visible,
.lead-mobile-card:focus-visible {
  outline: 2px solid rgba(32,183,216,.65);
  outline-offset: 2px;
}
.lead-card-star {
  font-size: 17px;
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 1px;
  line-height: 1.4;
  transition: transform .15s;
  user-select: none;
}
.lead-card-star:hover {
  transform: scale(1.25);
}
.lead-card-body {
  flex: 1;
  min-width: 0;
}
.lead-card-row1 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 5px;
}
.lead-card-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.lead-card-grade {
  font-size: 12px;
  color: var(--muted);
}
.lead-stage-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}
.lead-project-tag {
  font-size: 11px;
  padding: 1px 6px;
  border-radius: 6px;
  background: rgba(255,255,255,.07);
  color: var(--muted);
}
.lead-card-row2 {
  font-size: 12px;
  color: var(--ink2);
  margin-bottom: 4px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.lead-source-tag {
  font-size: 11px;
  padding: 1px 7px;
  border-radius: 8px;
  background: rgba(32,183,216,.1);
  color: var(--blue);
}
.lead-ai-score {
  font-size: 11px;
  padding: 1px 7px;
  border-radius: 8px;
  background: rgba(139,124,246,.12);
  color: #cac4ff;
}
.lead-card-row3 {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.lead-days-hot {
  color: var(--red) !important;
  font-weight: 600;
}
.lead-days-warn {
  color: var(--yellow) !important;
}
.lead-key-note {
  font-size: 12px;
  color: var(--ink2);
  background: rgba(32,183,216,.06);
  border-left: 2px solid rgba(32,183,216,.4);
  padding: 4px 8px;
  margin-top: 7px;
  border-radius: 0 5px 5px 0;
}
.lead-incomplete-badge {
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 6px;
  background: rgba(255,111,123,.1);
  color: var(--red);
  border: 1px solid rgba(255,111,123,.2);
}
.lead-card-actions {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex-shrink: 0;
  cursor: default;
}
.lead-card-actions .btn-primary,
.lead-card-actions .btn-ghost {
  font-size: 12px;
  padding: 5px 13px;
  white-space: nowrap;
}
.duplicate-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.duplicate-row-actions .btn-primary,
.duplicate-row-actions .btn-ghost {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 8px;
}
.lead-detail-alert.duplicate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.lead-detail-alert.duplicate .btn-ghost {
  padding: 5px 10px;
  font-size: 12px;
  white-space: nowrap;
}
.lead-empty-state {
  text-align: center;
  padding: 60px 20px;
  color: var(--muted);
  border: 1px dashed var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.015);
}
.lead-empty-state .empty-icon {
  font-size: 40px;
  margin-bottom: 12px;
}
.lead-empty-state h3 {
  font-size: 16px;
  color: var(--ink2);
  margin-bottom: 8px;
}
.lead-empty-state p {
  font-size: 13px;
  margin-bottom: 16px;
}
.lead-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
  color: var(--muted);
  font-size: 13px;
}
.lead-page-actions {
  display: flex;
  gap: 8px;
}
.lead-page-actions button:disabled {
  opacity: .42;
  cursor: not-allowed;
}
.lead-detail-modal {
  color: var(--ink);
}
.lead-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 16px;
}
.lead-detail-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.lead-detail-title h2 {
  margin: 0;
  font-size: 22px;
}
.lead-detail-head p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.lead-detail-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.lead-detail-alert,
.lead-detail-ok {
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px;
  margin-bottom: 14px;
}
.lead-detail-alert {
  color: #ffb7bd;
  background: rgba(255,111,123,.09);
  border: 1px solid rgba(255,111,123,.22);
}
.lead-detail-ok {
  color: #94efb9;
  background: rgba(54,194,117,.08);
  border: 1px solid rgba(54,194,117,.2);
}
.lead-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.lead-detail-item {
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 10px 12px;
  min-width: 0;
}
.lead-detail-item span,
.lead-detail-notes span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 5px;
}
.lead-detail-item strong {
  display: block;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.45;
  word-break: break-word;
}
.lead-detail-notes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.lead-detail-notes > div {
  background: rgba(32,183,216,.045);
  border: 1px solid rgba(32,183,216,.12);
  border-left: 3px solid rgba(32,183,216,.55);
  border-radius: 10px;
  padding: 10px 12px;
}
.lead-detail-notes p {
  margin: 0;
  color: var(--ink2);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
}
@media (max-width: 640px) {
  .recruit-hello-panel {
    grid-template-columns: 1fr;
  }
  .lead-kpi-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .lead-asset-grid {
    grid-template-columns: 1fr;
  }
  .today-command-strip,
  .today-bottom-grid {
    grid-template-columns: 1fr;
  }
  .today-shell {
    grid-template-columns: 1fr;
  }
  .today-detail-panel {
    position: static;
  }
  .today-task-card {
    grid-template-columns: 1fr;
  }
  .today-task-priority {
    justify-content: flex-start;
    width: fit-content;
  }
  .today-task-actions {
    justify-content: flex-start;
  }
  .today-detail-grid,
  .today-detail-actions {
    grid-template-columns: 1fr;
  }
  .today-toolbar,
  .today-detail-head {
    flex-direction: column;
  }
  .lead-simple-summary {
    align-items: stretch;
    flex-direction: column;
  }
  .lead-simple-summary button {
    width: 100%;
  }
  .lead-filter-row {
    flex-wrap: wrap;
  }
  .lead-filter-row input {
    flex-basis: 100%;
  }
  .lead-card {
    flex-wrap: wrap;
  }
  .lead-card-actions {
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
  }
  .lead-pill-bar {
    gap: 4px;
  }
  .lead-pill {
    padding: 5px 10px;
    font-size: 12px;
  }
  .lead-warning-strip,
  .lead-pagination {
    align-items: flex-start;
    flex-direction: column;
  }
  .lead-reactivate-tools {
    align-items: stretch;
    flex-direction: column;
  }
  .lead-detail-head,
  .lead-detail-notes {
    grid-template-columns: 1fr;
    flex-direction: column;
  }
  .lead-detail-grid {
    grid-template-columns: 1fr;
  }
  .lead-detail-actions {
    justify-content: flex-start;
  }
}

/* ─── Follow Modal V2: dial + recording + AI review ─────────── */
.follow-modal-v2 {
  color: var(--ink);
}
.follow-modal-v2 h2 {
  margin: 0;
  font-size: 21px;
}
.follow-modal-v2 h2 span {
  color: var(--accent);
}
.follow-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(113,176,214,.16);
}
.follow-modal-head p {
  margin: 6px 0 0;
  color: var(--muted);
  font-weight: 800;
}
.follow-link {
  border: 1px solid rgba(32,183,216,.34);
  border-radius: 999px;
  background: rgba(32,183,216,.08);
  color: var(--accent);
  padding: 7px 12px;
  font-weight: 900;
  cursor: pointer;
}
.follow-section {
  padding: 14px 0;
  border-bottom: 1px solid rgba(113,176,214,.13);
}
.follow-section:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.follow-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 1000;
}
.follow-section-title::after {
  content: "";
  height: 1px;
  flex: 1;
  background: rgba(113,176,214,.13);
}
.follow-dial-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid rgba(32,183,216,.22);
  border-radius: 16px;
  background: rgba(32,183,216,.08);
}
.follow-avatar {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--purple));
  color: #fff;
  font-size: 20px;
  font-weight: 1000;
}
.follow-dial-info {
  min-width: 0;
}
.follow-dial-info strong,
.follow-dial-info a,
.follow-dial-info span {
  display: block;
}
.follow-dial-info strong {
  font-size: 17px;
}
.follow-dial-info a {
  margin-top: 4px;
  color: var(--accent);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .05em;
  text-decoration: none;
}
.follow-dial-info span {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.follow-dial-actions {
  display: flex;
  gap: 10px;
}
.follow-dial-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.follow-record-hint {
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(226,170,56,.22);
  border-radius: 12px;
  background: rgba(226,170,56,.07);
}
.follow-record-hint b,
.follow-record-hint span {
  display: block;
}
.follow-record-hint b {
  color: var(--yellow);
  margin-bottom: 6px;
}
.follow-record-hint span {
  color: var(--ink2);
  line-height: 1.65;
}
.follow-import-note {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(226,170,56,.24);
  border-radius: 12px;
  background: rgba(226,170,56,.07);
}
.follow-import-note b {
  color: var(--yellow);
}
.follow-import-note p {
  margin: 6px 0 0;
  color: var(--ink2);
  line-height: 1.7;
}
.follow-import-note span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.follow-empty {
  padding: 22px;
  border: 1px dashed rgba(113,176,214,.18);
  border-radius: 14px;
  color: var(--muted);
  text-align: center;
}
.follow-history-list {
  display: grid;
  gap: 10px;
}
.follow-history-item {
  position: relative;
  padding: 14px 16px;
  border: 1px solid rgba(113,176,214,.13);
  border-left: 3px solid rgba(113,176,214,.22);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
}
.follow-history-item.has-ai {
  border-left-color: var(--purple);
}
.follow-history-item.good {
  border-left-color: var(--ok);
}
.follow-history-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 8px;
}
.follow-history-meta i,
.follow-ai-tags i {
  font-style: normal;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 1000;
}
.badge-green { background: rgba(54,194,117,.16); color: var(--ok); }
.badge-blue { background: rgba(32,183,216,.16); color: var(--accent); }
.badge-purple { background: rgba(139,124,246,.16); color: #c9c3ff; }
.follow-history-item p {
  margin: 0;
  color: var(--ink);
  line-height: 1.7;
}
.follow-ai-box {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(139,124,246,.22);
  border-radius: 12px;
  background: rgba(139,124,246,.08);
}
.follow-ai-score b {
  color: var(--ok);
  font-size: 24px;
}
.follow-ai-score span {
  color: var(--muted);
}
.follow-ai-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.follow-ai-tags i {
  background: rgba(139,124,246,.16);
  color: #d8d3ff;
}
.follow-next {
  margin-top: 8px;
  color: var(--yellow);
  font-weight: 900;
}
.follow-ai-suggestion {
  margin-top: 8px;
  color: var(--ok);
  line-height: 1.6;
  font-weight: 800;
}
.follow-history-item audio {
  width: 100%;
  max-width: 420px;
  height: 32px;
  margin-top: 8px;
}
.follow-ai-btn {
  margin-top: 10px;
  padding: 6px 12px;
  font-size: 12px;
}
.follow-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.follow-form-grid .wide {
  grid-column: 1 / -1;
}
.follow-form-grid label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 1000;
}
.follow-form-grid input,
.follow-form-grid select,
.follow-form-grid textarea {
  width: 100%;
  border: 1px solid rgba(113,176,214,.2);
  border-radius: 10px;
  background: rgba(3,15,24,.55);
  color: var(--ink);
  padding: 11px 12px;
  font: inherit;
  font-weight: 800;
}
.follow-form-grid textarea {
  min-height: 76px;
  resize: vertical;
}
.follow-form-grid small {
  color: var(--muted);
  line-height: 1.5;
}
.follow-bottom-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
@media (max-width: 720px) {
  .follow-modal-head,
  .follow-dial-card {
    grid-template-columns: 1fr;
  }
  .follow-modal-head {
    align-items: flex-start;
  }
  .follow-dial-card {
    display: grid;
  }
  .follow-dial-actions,
  .follow-bottom-actions {
    width: 100%;
  }
  .follow-dial-actions > *,
  .follow-bottom-actions > * {
    flex: 1;
  }
  .follow-form-grid {
    grid-template-columns: 1fr;
  }
  .follow-ai-box {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Growth Center V3 */
.growth-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 48px);background:#0b111d;color:#eaf6ff}
.growth-nav{border-right:1px solid rgba(118,160,196,.18);background:#171d2c;padding:18px 14px;position:sticky;top:0;height:calc(100vh - 1px)}
.growth-brand{padding:0 4px 18px;border-bottom:1px solid rgba(118,160,196,.18);margin-bottom:16px}
.growth-brand strong{display:block;color:#21d7ff;font-size:20px}.growth-brand span,.growth-nav-group p,.growth-topbar p,.growth-card-head p{color:#7fa7c4}
.growth-nav-group{border-bottom:1px solid rgba(118,160,196,.14);margin-bottom:18px;padding-bottom:14px}.growth-nav-group p{margin:0 0 10px;font-size:13px}
.growth-nav-group button{width:100%;display:flex;align-items:center;gap:12px;min-height:48px;border:0;background:transparent;color:#9bb7cf;border-radius:0;padding:0 10px;cursor:pointer;text-align:left;font-size:16px}
.growth-nav-group button:hover,.growth-nav-group button.active{background:rgba(31,213,244,.11);color:#22d7ff}.growth-nav-group button span{width:18px;text-align:center}
.growth-main{padding:20px 30px 48px;overflow:hidden}.growth-loading{padding:40px;color:#88aac3}
.growth-main-standalone{padding:0;overflow:visible;background:transparent}
.growth-main-standalone .growth-topbar{margin-top:0}
.growth-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid rgba(118,160,196,.18);padding-bottom:22px;margin-bottom:22px}
.growth-topbar h2{margin:0 0 8px;font-size:26px}.growth-topbar p,.growth-card-head p{margin:0}.growth-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.growth-actions input,.growth-card textarea,.growth-card input,.growth-card select{background:#0a121d;color:#f5fbff;border:1px solid rgba(99,150,190,.35);border-radius:10px;min-height:44px;padding:0 12px}
.growth-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.growth-kpi{border:1px solid rgba(93,148,188,.2);background:#102031;border-radius:12px;padding:22px 24px;border-top:4px solid #22d7ff}
.growth-kpi.green{border-top-color:#35d48c}.growth-kpi.violet{border-top-color:#8e7cff}.growth-kpi.amber{border-top-color:#f4b83d}.growth-kpi span{display:block;color:#77a8c7}.growth-kpi b{display:block;font-size:38px;line-height:1.15;margin:8px 0}.growth-kpi small{color:#dbefff}
.growth-insights,.growth-card{background:#121e2d;border:1px solid rgba(93,148,188,.22);border-radius:12px;padding:20px;margin-bottom:18px}.growth-insights h3,.growth-card h3{margin:0}.growth-insights h3 span{font-size:12px;color:#ffc04d;background:rgba(255,192,77,.13);border-radius:999px;padding:3px 8px;margin-left:8px}
.growth-insight-grid,.growth-two{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.growth-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.growth-insight-grid article{background:#1d2435;border:1px solid rgba(128,143,184,.22);border-left:3px solid #ffc247;border-radius:10px;padding:16px}.growth-insight-grid p{color:#b7c5d5;margin:8px 0}.growth-insight-grid span{color:#23d5ff;font-size:13px}
.growth-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.growth-pill-tabs,.growth-subtabs{display:flex;gap:8px;flex-wrap:wrap}.growth-pill-tabs button,.growth-subtabs button{border:1px solid rgba(93,148,188,.28);background:#101a29;color:#cdeaff;border-radius:999px;padding:8px 14px;cursor:pointer}.growth-subtabs{margin-bottom:16px}.growth-pill-tabs button.active,.growth-subtabs button.active{background:rgba(34,215,255,.17);border-color:#22d7ff;color:#22d7ff}
.growth-call-list{display:grid;gap:12px}.growth-call{background:#1c2435;border:1px solid rgba(125,142,186,.2);border-left:3px solid #8e7cff;border-radius:12px;padding:16px 18px}.growth-call.good{border-left-color:#35d48c}.growth-call.bad{border-left-color:#ff6380}
.growth-call-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center}.growth-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#2fd1ff,#8d73ff);font-weight:800}.growth-call h4{margin:0 0 4px;font-size:17px}.growth-call p,.growth-call-top p{color:#8eaac0;margin:0}.growth-call-top strong{font-size:28px;color:#45df8f}
.growth-transcript{margin:14px 0;background:rgba(255,255,255,.04);border-radius:10px;padding:14px;color:#dbe7f2;line-height:1.65;max-height:150px;overflow:auto}.growth-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.growth-tags span{background:rgba(75,91,190,.24);color:#bfc8ff;border:1px solid rgba(143,128,255,.26);border-radius:999px;padding:4px 10px;font-size:12px}
.growth-ai-box{border-left:3px solid #35d48c;background:rgba(255,255,255,.04);border-radius:8px;padding:12px 14px;margin-top:10px}.growth-ai-box.violet{border-left-color:#8e7cff}.growth-ai-box p{margin:6px 0 0;color:#c6d5e2}.growth-call-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.growth-curve{height:210px;display:flex;align-items:flex-end;gap:10px;padding:12px 4px}.growth-curve div{flex:1;min-width:34px;display:grid;grid-template-rows:1fr auto auto;gap:4px;text-align:center}.growth-curve i{align-self:end;display:block;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#23d5ff,#35d48c)}.growth-curve span{color:#eaf6ff;font-weight:800}.growth-curve small{color:#7399b6}
.growth-funnel{display:grid;gap:14px}.growth-funnel div{display:grid;grid-template-columns:64px 1fr 44px;gap:10px;align-items:center}.growth-funnel i{height:12px;background:#0a121d;border-radius:999px;overflow:hidden}.growth-funnel b{display:block;height:100%;background:linear-gradient(90deg,#23d5ff,#f4b83d)}
.growth-heatmap,.growth-cloud{display:flex;gap:10px;flex-wrap:wrap}.growth-heatmap span{width:76px;min-height:54px;border-radius:10px;background:#1fc7d4;color:#06131d;display:grid;place-items:center;text-align:center;font-weight:800}.growth-cloud span{color:#cfe9ff;background:rgba(34,215,255,.1);border:1px solid rgba(34,215,255,.18);border-radius:999px;padding:8px 12px}
.growth-kb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.growth-kb-grid article{background:#0f1b29;border:1px solid rgba(93,148,188,.22);border-radius:12px;padding:16px}.growth-kb-grid article div{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.growth-kb-grid article span{color:#23d5ff}.growth-kb-grid blockquote{margin:12px 0;border-left:3px solid #35d48c;padding-left:12px;color:#cae0ee}
@media (max-width:980px){.growth-shell{grid-template-columns:1fr}.growth-nav{position:relative;height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.growth-brand,.growth-nav-group{border:0;margin:0;padding:0}.growth-kpis,.growth-insight-grid,.growth-two,.growth-kb-grid{grid-template-columns:1fr}.growth-topbar,.growth-card-head{flex-direction:column}}

/* Follow redesign V3 */
.follow-redesign{display:grid;gap:0;color:var(--ink)}
.follow-redesign-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px;padding-right:48px}
.follow-redesign-head h2{margin:0;font-size:22px}.follow-section{padding:14px 0;border-bottom:1px solid var(--border)}.follow-section:last-child{border-bottom:0}
.follow-section-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.5px;margin-bottom:10px}.follow-section-label:after{content:'';flex:1;height:1px;background:var(--border)}.follow-section-label span{font-weight:600;letter-spacing:0}
.follow-dial-bar{display:flex;align-items:center;gap:12px;padding:14px;background:rgba(32,183,216,.06);border:1px solid rgba(32,183,216,.18);border-radius:12px;flex-wrap:wrap}
.follow-dial-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#7b68ee);display:grid;place-items:center;font-size:18px;font-weight:900;color:#fff;flex-shrink:0}
.follow-dial-info{flex:1;min-width:180px}.follow-dial-name{font-size:15px;font-weight:900;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.follow-dial-phone{font-size:15px;color:var(--blue);font-family:Consolas,monospace;letter-spacing:1px}.follow-dial-sub,.follow-dial-score{font-size:12px;color:var(--muted);margin-top:3px}.follow-dial-score{color:var(--yellow)}
.follow-dial-actions{display:flex;gap:8px;flex-shrink:0}.follow-dial-call,.follow-dial-copy{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:9px;font-size:14px;font-weight:900;text-decoration:none;white-space:nowrap;cursor:pointer}.follow-dial-call{background:var(--blue);color:#001018;border:0}.follow-dial-copy{background:rgba(255,255,255,.06);color:var(--muted);border:1px solid var(--border)}.follow-no-phone{font-size:13px;color:var(--red)}
.follow-phone-list{display:grid;gap:8px;min-width:360px;max-width:430px;flex:0 1 430px}
.follow-phone-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 12px;background:rgba(3,16,25,.38);border:1px solid rgba(120,160,190,.16);border-radius:11px}
.follow-phone-row.is-primary{border-color:rgba(32,183,216,.32);background:rgba(32,183,216,.07)}
.follow-phone-main{min-width:0}.follow-phone-owner{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--muted)}
.follow-phone-owner>span{color:#b7cddd;font-weight:800}.follow-phone-owner small{font-size:10px;color:#66859c}
.follow-phone-tag{padding:2px 6px;border-radius:999px;font-size:10px;line-height:1.3;font-weight:900}
.follow-phone-tag.primary{color:#55ddf5;background:rgba(32,183,216,.14)}
.follow-phone-tag.decision{color:#f0bd4d;background:rgba(226,170,56,.14)}
@media(max-width:760px){.follow-phone-list{min-width:0;max-width:none;flex-basis:100%;width:100%}.follow-phone-row{align-items:flex-start}.follow-phone-row .follow-dial-actions{gap:5px}.follow-phone-row .follow-dial-call,.follow-phone-row .follow-dial-copy{padding:8px 11px;font-size:12px}}
.follow-record-hint{margin-top:10px;padding:10px 12px;background:rgba(226,170,56,.07);border:1px solid rgba(226,170,56,.18);border-radius:9px;font-size:12px;color:var(--muted);line-height:1.7}.follow-record-hint b{color:var(--yellow)}
.follow-hist-item{background:var(--card2);border-radius:9px;padding:11px 12px;margin-bottom:9px;border-left:3px solid var(--border);transition:border-color .2s}.follow-hist-item.note{border-left-color:var(--muted)}.follow-hist-item.has-ai{border-left-color:#8b7cf6}.follow-hist-item.score-hi{border-left-color:var(--green)}.follow-hist-item.score-lo{border-left-color:var(--red)}
.follow-hist-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:6px;flex-wrap:wrap}.fbadge{padding:2px 7px;border-radius:7px;font-size:11px;font-weight:900}.fbadge-green{background:rgba(54,194,117,.15);color:var(--green)}.fbadge-red{background:rgba(224,82,82,.15);color:var(--red)}.fbadge-blue{background:rgba(32,183,216,.15);color:var(--blue)}.fbadge-purple{background:rgba(139,124,246,.15);color:#b4acff}
.follow-hist-content{font-size:13px;line-height:1.65;color:var(--ink)}.follow-hist-next{font-size:12px;color:var(--yellow);margin-top:4px}
.follow-hist-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.follow-hist-title strong{font-size:14px;color:var(--ink)}.follow-hist-title-side{display:flex;align-items:center;gap:7px;justify-content:flex-end}.follow-hist-title time{font-size:12px;color:var(--muted);white-space:nowrap}.follow-hist-menu{position:relative}.follow-hist-menu summary{list-style:none;width:28px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--muted);cursor:pointer;font-weight:900;letter-spacing:1px}.follow-hist-menu summary::-webkit-details-marker{display:none}.follow-hist-menu summary:hover,.follow-hist-menu[open] summary{background:rgba(255,255,255,.07);color:var(--ink)}.follow-hist-menu-pop{position:absolute;right:0;top:27px;z-index:8;min-width:84px;padding:5px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.28)}.follow-hist-edit,.follow-hist-delete{display:block;width:100%;border:0;background:transparent;padding:7px 10px;border-radius:6px;text-align:left;font-size:12px;cursor:pointer}.follow-hist-edit{color:var(--blue)}.follow-hist-delete{color:var(--red)}.follow-hist-edit:hover,.follow-hist-delete:hover{background:rgba(255,255,255,.06)}.follow-hist-communication{display:grid;gap:7px;margin-top:7px}.follow-hist-summary-part{padding:8px 10px;border-radius:8px;background:rgba(32,183,216,.07);border:1px solid rgba(32,183,216,.13)}.follow-hist-summary-part.ai{background:rgba(139,124,246,.08);border-color:rgba(139,124,246,.18)}.follow-hist-summary-part b{display:block;margin-bottom:3px;font-size:11px;color:var(--blue)}.follow-hist-summary-part.ai b{color:#b4acff}.follow-hist-summary-part p{margin:0;font-size:13px;line-height:1.65;color:var(--ink);white-space:pre-wrap}.follow-hist-communication.empty-summary{font-size:12px;color:var(--muted)}
.follow-hist-ai{margin-top:9px;padding:8px 10px;background:rgba(139,124,246,.08);border:1px solid rgba(139,124,246,.15);border-radius:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.follow-hist-score{font-size:20px;font-weight:900;color:var(--green);display:flex;align-items:baseline;gap:2px}.follow-hist-score small{font-size:11px;color:var(--muted)}.follow-hist-tags{display:flex;gap:5px;flex-wrap:wrap;flex:1}.follow-hist-tag{font-size:11px;padding:3px 8px;border-radius:999px;background:rgba(139,124,246,.14);color:#cac4ff}
.follow-hist-judges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.follow-hist-tag b{font-size:10px;color:rgba(255,255,255,.5);margin-right:4px}.follow-hist-tag.good{background:rgba(54,194,117,.14);color:var(--green)}.follow-hist-tag.mid{background:rgba(226,170,56,.14);color:var(--yellow)}.follow-hist-tag.bad{background:rgba(224,82,82,.14);color:var(--red)}
.follow-ai-btn{margin-top:8px;padding:5px 10px;font-size:12px}.follow-ai-suggestion.mini{margin-top:8px}

/* Finance expense entry, category tree and vouchers */
.expense-form-title{margin-bottom:14px}.expense-form-title h2{margin-bottom:3px}.expense-form-title p{margin:0;color:var(--muted);font-size:13px}.expense-form-section{margin:0 0 14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018)}.expense-form-section h3{margin:0 0 12px;font-size:14px;color:var(--blue)}.expense-form-actions{position:sticky;bottom:-18px;z-index:5;padding:12px 0 4px;background:linear-gradient(transparent,var(--card) 25%)}.expense-cat-toolbar{margin-bottom:12px}.expense-cat-tree{max-height:58vh;overflow:auto;padding-right:4px}.expense-cat-node{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;margin:5px 0;border:1px solid var(--border);border-radius:9px;background:var(--card2)}.expense-cat-node.level-2{margin-left:22px}.expense-cat-node.level-3{margin-left:44px}.expense-cat-node.disabled{opacity:.48}.expense-cat-node strong{font-size:13px}.expense-cat-node span,.expense-cat-node small{margin-left:8px;font-size:11px;color:var(--muted)}.expense-cat-actions{display:flex;gap:4px;flex-wrap:wrap}.expense-cat-actions button,.expense-file-row button{border:0;background:transparent;color:var(--blue);font-size:11px;cursor:pointer;padding:4px 6px}.expense-cat-actions button.danger,.expense-file-row button{color:var(--red)}.expense-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.expense-detail-grid>div{padding:10px;border-radius:9px;background:var(--card2);border:1px solid var(--border)}.expense-detail-grid b{font-size:11px;color:var(--muted)}.expense-detail-grid p{margin:4px 0 0;line-height:1.55}.expense-file-row{display:flex;align-items:center;gap:10px;padding:8px 9px;border-bottom:1px solid var(--border)}.expense-file-row a{flex:1;color:var(--blue);word-break:break-all}.expense-file-row span{font-size:11px;color:var(--muted)}
@media(max-width:720px){.expense-detail-grid{grid-template-columns:1fr}.expense-cat-node{align-items:flex-start;flex-direction:column}.expense-cat-node.level-2{margin-left:12px}.expense-cat-node.level-3{margin-left:24px}.expense-form-section{padding:11px}}
.follow-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.follow-form-grid .wide{grid-column:1/-1}.follow-form-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:900}.follow-form-grid input,.follow-form-grid select,.follow-form-grid textarea{width:100%;border:1px solid rgba(113,176,214,.22);border-radius:10px;background:rgba(3,15,24,.55);color:var(--ink);padding:11px 12px;font:inherit;font-weight:800}.follow-form-grid textarea{min-height:82px;resize:vertical}.follow-form-grid small{color:var(--muted);line-height:1.5;font-weight:600}
.follow-judge-panel{padding:12px;border:1px solid rgba(139,124,246,.22);background:rgba(139,124,246,.07);border-radius:12px}
.follow-judge-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.follow-judge-head strong{color:var(--ink);font-size:13px}
.follow-judge-head span{color:var(--muted);font-size:12px;line-height:1.45;text-align:right;font-weight:600}
.follow-judge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.follow-judge-grid label{min-width:0}
.follow-upload-progress{display:none;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--blue)}.follow-upload-progress.visible{display:flex}.follow-prog-wrap{flex:1;height:4px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;max-width:160px}.follow-prog-bar{height:100%;background:var(--blue);border-radius:2px;width:0;transition:width .2s}
.follow-ai-result{display:none;margin-top:14px;padding:14px 16px;background:rgba(139,124,246,.06);border:1px solid rgba(139,124,246,.2);border-radius:10px}.follow-ai-result.visible{display:block}.follow-ai-header{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}.follow-ai-score-big{font-size:36px;font-weight:900;line-height:1;background:linear-gradient(135deg,var(--blue),#8b7cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.follow-ai-score-label{font-size:12px;color:var(--muted);margin-top:3px}.follow-ai-intent-badge{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:900;background:rgba(139,124,246,.15);color:#cac4ff;border:1px solid rgba(139,124,246,.24)}.follow-ai-intent-badge.good{background:rgba(54,194,117,.15);color:var(--green);border-color:rgba(54,194,117,.25)}.follow-ai-intent-badge.mid{background:rgba(226,170,56,.15);color:var(--yellow);border-color:rgba(226,170,56,.25)}.follow-ai-intent-badge.bad{background:rgba(224,82,82,.15);color:var(--red);border-color:rgba(224,82,82,.25)}
.follow-ai-row{font-size:13px;color:var(--muted);margin-bottom:6px;line-height:1.5}.follow-ai-row b{color:var(--ink)}.follow-ai-concerns{display:flex;gap:5px;flex-wrap:wrap}.follow-ai-concern{padding:4px 10px;border-radius:8px;font-size:12px;background:rgba(226,170,56,.1);color:var(--yellow);border:1px solid rgba(226,170,56,.18)}.follow-ai-suggestion{background:rgba(54,194,117,.07);border-left:3px solid var(--green);border-radius:0 8px 8px 0;padding:9px 12px;font-size:13px;line-height:1.7;color:var(--ink)}.follow-ai-improvement{margin-top:8px;padding:9px 12px;background:rgba(32,183,216,.07);border:1px solid rgba(32,183,216,.15);border-radius:8px;font-size:13px;line-height:1.7;color:var(--blue)}
.follow-bottom-actions{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:9px;margin-top:16px}#followSaveAnalyze.done{background:rgba(54,194,117,.22)!important;color:var(--green)!important;border-color:rgba(54,194,117,.35)!important}
@media (max-width:640px){.follow-redesign-head,.follow-dial-bar{align-items:flex-start;flex-direction:column}.follow-dial-actions,.follow-bottom-actions{width:100%;grid-template-columns:1fr}.follow-dial-actions>*{flex:1}.follow-form-grid,.follow-judge-grid{grid-template-columns:1fr}.follow-judge-head{display:grid}.follow-judge-head span{text-align:left}}

/* Follow modal compact pass */
.modal-card:has(.follow-redesign){width:min(760px,calc(100vw - 36px));max-height:calc(100vh - 36px);padding:20px 22px;overflow-x:hidden}
.modal-card:has(.follow-redesign) .follow-redesign-head{gap:12px;margin-bottom:4px}
.modal-card:has(.follow-redesign) .follow-redesign-head h2{font-size:20px}
.modal-card:has(.follow-redesign) .follow-section{padding:11px 0}
.modal-card:has(.follow-redesign) .follow-section-label{margin-bottom:8px;font-size:12px;letter-spacing:.3px}
.modal-card:has(.follow-redesign) .follow-dial-bar{gap:10px;padding:12px;border-radius:12px}
.modal-card:has(.follow-redesign) .follow-dial-avatar{width:42px;height:42px;font-size:16px}
.modal-card:has(.follow-redesign) .follow-dial-name{font-size:14px}
.modal-card:has(.follow-redesign) .follow-dial-phone{font-size:14px}
.modal-card:has(.follow-redesign) .follow-dial-sub,
.modal-card:has(.follow-redesign) .follow-dial-score{font-size:11px}
.modal-card:has(.follow-redesign) .follow-dial-call,
.modal-card:has(.follow-redesign) .follow-dial-copy{padding:8px 13px;font-size:13px}
.modal-card:has(.follow-redesign) .follow-record-hint{margin-top:8px;padding:9px 11px;line-height:1.55}
.modal-card:has(.follow-redesign) .follow-empty{padding:16px;border-radius:12px}
.modal-card:has(.follow-redesign) .follow-hist-item{padding:9px 11px;margin-bottom:8px;border-radius:9px}
.modal-card:has(.follow-redesign) .follow-form-grid{gap:10px}
.modal-card:has(.follow-redesign) .follow-form-grid label{gap:5px;font-size:12px}
.modal-card:has(.follow-redesign) .follow-form-grid input,
.modal-card:has(.follow-redesign) .follow-form-grid select,
.modal-card:has(.follow-redesign) .follow-form-grid textarea{padding:10px 11px;border-radius:9px}
.modal-card:has(.follow-redesign) .follow-form-grid textarea{min-height:68px}
.modal-card:has(.follow-redesign) .follow-bottom-actions{gap:8px;margin-top:12px}

/* 电邀中心最终密度：更小字号、彩色状态、上次沟通单行 AI 摘要 */
.dial-v2-table {
  border-spacing: 0 3px !important;
  font-size: 11.5px !important;
}
.dial-v2-table th {
  padding: 5px 9px !important;
  font-size: 10px !important;
}
.dial-v2-table td {
  padding: 6px 9px !important;
  font-size: 11.5px !important;
  line-height: 1.25 !important;
}
.dial-v2-student strong {
  font-size: 12.5px !important;
}
.dial-v2-student span,
.dial-v2-sub {
  font-size: 10.5px !important;
}
.dial-v2-stage-pill {
  height: 20px !important;
  padding: 0 8px !important;
  font-size: 10.5px !important;
  border-radius: 6px !important;
}
.dial-v2-stage-pill.new {
  background: rgba(37, 199, 232, .16) !important;
  color: #25d7f2 !important;
}
.dial-v2-stage-pill.follow {
  background: rgba(240, 181, 51, .16) !important;
  color: #f6bf37 !important;
}
.dial-v2-stage-pill.appointed {
  background: rgba(138, 118, 255, .18) !important;
  color: #a495ff !important;
}
.dial-v2-note-pill {
  display: block !important;
  max-width: 100% !important;
  padding: 4px 9px !important;
  font-size: 11.5px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.dial-v2-note-pill.note-good {
  color: #46e28f !important;
  background: rgba(53, 205, 127, .13) !important;
}
.dial-v2-note-pill.note-warn {
  color: #ffc24c !important;
  background: rgba(240, 181, 51, .15) !important;
}
.dial-v2-note-pill.note-danger {
  color: #ff6f81 !important;
  background: rgba(255, 99, 118, .15) !important;
}
.dial-v2-note-pill.note-muted {
  color: #8aa7bd !important;
  background: rgba(138, 167, 189, .08) !important;
}
.dial-v2-judge {
  height: 18px !important;
  max-width: 116px !important;
  padding: 0 6px !important;
  font-size: 10px !important;
  border-radius: 6px !important;
}
.dial-v2-judge b {
  font-size: 9px !important;
}
.dial-call-btn {
  height: 28px !important;
  min-width: 62px !important;
  border-radius: 7px !important;
  font-size: 11px !important;
  padding: 0 9px !important;
}

/* Growth Center exact reference skin */
.sidebar .nav-group-label{font-size:12px;color:rgba(168,196,216,.7);letter-spacing:0}.nav-emoji-icon{display:grid;place-items:center;width:18px;height:18px;font-size:16px;line-height:1}
.growth-main-standalone{--gc3-blue:#20b7d8;--gc3-yellow:#e2aa38;--gc3-purple:#8b7cf6;--gc3-green:#36c275;--gc3-red:#e05252;--gc3-card:#1e2433;--gc3-card2:#242b3d;--gc3-border:rgba(255,255,255,.08);--gc3-ink:rgba(255,255,255,.92);--gc3-ink2:rgba(255,255,255,.45);--gc3-ink3:rgba(255,255,255,.25);color:var(--gc3-ink);background:#151a27;min-height:calc(100vh - 40px);padding:0 24px 40px}
.gc3-topbar{min-height:56px;margin:0 -24px 20px;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--gc3-border);background:rgba(21,26,39,.86);backdrop-filter:blur(8px);position:sticky;top:0;z-index:8}.gc3-topbar-title{font-size:18px;line-height:1.2;font-weight:900;color:var(--gc3-ink)}.gc3-topbar-title span{color:var(--gc3-blue)}.gc3-topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gc3-month{width:auto;min-width:132px;height:36px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:var(--gc3-card2);color:var(--gc3-ink);padding:0 12px}
.gc3-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:14px;font-size:12px;font-weight:800}.gc3-tag-blue{background:rgba(32,183,216,.12);color:var(--gc3-blue);border:1px solid rgba(32,183,216,.25)}.gc3-tag-green{background:rgba(54,194,117,.12);color:var(--gc3-green);border:1px solid rgba(54,194,117,.25)}.gc3-tag-yellow{background:rgba(226,170,56,.12);color:var(--gc3-yellow);border:1px solid rgba(226,170,56,.25)}.gc3-tag-purple{background:rgba(139,124,246,.12);color:var(--gc3-purple);border:1px solid rgba(139,124,246,.25)}
.gc3-growth-card,.gc3-card{background:var(--gc3-card);border:1px solid var(--gc3-border);border-radius:12px;padding:16px;margin-bottom:20px}.gc3-growth-card{min-height:205px;display:flex;align-items:stretch}.gc3-line-chart{width:360px;max-width:100%;min-height:170px;display:grid;grid-template-columns:42px 1fr;align-items:stretch;opacity:.78}.gc3-yaxis{display:grid;grid-template-rows:repeat(5,1fr);color:var(--gc3-ink3);font-weight:900;font-size:13px;padding:8px 0 24px}.gc3-chart-bars{position:relative;display:grid;grid-template-columns:repeat(8,1fr);align-items:end;gap:8px;padding:8px 0 22px;background:repeating-linear-gradient(to bottom,transparent 0 34px,rgba(255,255,255,.035) 35px 36px)}
.gc3-chart-bars i{position:relative;display:block;height:var(--h);min-height:24px;border-radius:999px 999px 3px 3px;background:linear-gradient(180deg,rgba(32,183,216,.8),rgba(32,183,216,.18));animation:gc3Grow .45s ease both;animation-delay:var(--delay)}.gc3-chart-bars i b{position:absolute;left:50%;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--gc3-blue);transform:translateX(-50%);box-shadow:0 0 0 2px rgba(32,183,216,.18)}.gc3-chart-bars i span{position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);color:var(--gc3-ink3);font-size:11px;font-style:normal;white-space:nowrap}@keyframes gc3Grow{from{height:10%;opacity:.2}}
.gc3-section-title{margin:20px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--gc3-ink);font-size:15px;font-weight:900}.gc3-section-title b{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:rgba(226,170,56,.15);color:var(--gc3-yellow);font-size:12px}.gc3-record-head{align-items:center}.gc3-weakness-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}.gc3-weakness{min-height:104px;padding:14px 16px;border:1px solid var(--gc3-border);border-left:3px solid var(--gc3-yellow);border-radius:10px;background:var(--gc3-card)}.gc3-weakness.red{border-left-color:var(--gc3-red)}.gc3-weakness.purple{border-left-color:var(--gc3-purple)}.gc3-weakness b{display:block;color:var(--gc3-yellow);font-size:13px;margin-bottom:6px}.gc3-weakness.red b{color:var(--gc3-red)}.gc3-weakness.purple b{color:var(--gc3-purple)}.gc3-weakness p{margin:0;color:var(--gc3-ink2);line-height:1.6}.gc3-weakness button{margin-top:8px;padding:0;border:0;background:transparent;color:var(--gc3-blue);font-weight:800;cursor:pointer}
.gc3-filter-tabs{display:flex;flex-wrap:wrap;gap:8px}.gc3-filter-tabs button,.gc3-kb-tabs button{border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.035);color:var(--gc3-ink2);padding:7px 14px;font-weight:900}.gc3-filter-tabs button:hover,.gc3-filter-tabs button.active,.gc3-kb-tabs button.active{color:var(--gc3-blue);background:rgba(32,183,216,.12);border-color:rgba(32,183,216,.35)}.gc3-filter-tabs button.green{color:var(--gc3-green);background:rgba(54,194,117,.1)}.gc3-filter-tabs button.red{color:var(--gc3-red);background:rgba(224,82,82,.1)}.gc3-filter-tabs button.yellow{color:var(--gc3-yellow);background:rgba(226,170,56,.1)}.gc3-filter-tabs button.purple{color:var(--gc3-purple);background:rgba(139,124,246,.1)}
.gc3-call-list,.gc3-excellent-list,.gc3-kb-grid{display:grid;gap:10px}.gc3-call-item{border:1px solid var(--gc3-border);border-radius:12px;overflow:hidden;background:var(--gc3-card);transition:border-color .15s,transform .15s,background .15s}.gc3-call-item:hover{border-color:rgba(32,183,216,.35);background:rgba(36,43,61,.92);transform:translateY(-1px)}.gc3-call-item.good{border-color:rgba(54,194,117,.28)}.gc3-call-item.bad{border-color:rgba(224,82,82,.28)}.gc3-call-header{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px}.gc3-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--gc3-green),var(--gc3-purple));color:#fff;font-weight:1000}.gc3-call-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;font-weight:900}.gc3-call-meta{color:var(--gc3-ink2);font-size:12px;margin-top:4px}.gc3-score{min-width:58px;text-align:right;color:var(--gc3-ink2)}.gc3-score b{color:var(--gc3-green);font-size:28px;line-height:1}.gc3-score span{color:var(--gc3-ink2)}.gc3-score em{font-style:normal;color:var(--gc3-ink2);font-weight:900}
.gc3-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px 66px}.gc3-tags span{padding:4px 10px;border-radius:999px;background:rgba(139,124,246,.14);border:1px solid rgba(139,124,246,.2);color:#d8d3ff;font-size:12px;font-weight:800}.gc3-transcript{margin:0 16px 14px;max-height:132px;overflow:auto;border-radius:8px;background:var(--gc3-card2);color:var(--gc3-ink2);padding:12px 14px;line-height:1.8}.gc3-ai-block{margin:0 16px 12px;border-radius:8px;background:var(--gc3-card2);padding:11px 13px;border-left:2px solid var(--gc3-green)}.gc3-ai-block.purple{border-left-color:var(--gc3-purple)}.gc3-ai-block b{display:block;color:var(--gc3-ink2);margin-bottom:6px}.gc3-ai-block p{margin:0;color:var(--gc3-ink);line-height:1.7}.gc3-call-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 14px}.gc3-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:7px 14px;border-radius:7px;font-weight:900;border:1px solid transparent;text-decoration:none}.gc3-btn-blue{background:rgba(32,183,216,.14);color:var(--gc3-blue);border-color:rgba(32,183,216,.25)}.gc3-btn-purple{background:rgba(139,124,246,.14);color:var(--gc3-purple);border-color:rgba(139,124,246,.25)}.gc3-btn-yellow{background:rgba(226,170,56,.14);color:var(--gc3-yellow);border-color:rgba(226,170,56,.25)}.gc3-btn-red{background:rgba(224,82,82,.14);color:var(--gc3-red);border-color:rgba(224,82,82,.25)}
.gc3-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.gc3-table-wrap{overflow:auto}.gc3-team-table{width:100%;border-collapse:collapse}.gc3-team-table th{color:var(--gc3-ink2);font-size:12px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--gc3-border)}.gc3-team-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--gc3-ink)}.gc3-team-table tr:hover td{background:rgba(255,255,255,.025)}.gc3-rank{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.08);color:var(--gc3-ink2);font-size:12px;font-weight:1000}.gc3-rank.top1{background:var(--gc3-yellow);color:#111}.gc3-rank.top2{background:rgba(255,255,255,.22);color:#fff}.gc3-rank.top3{background:rgba(240,123,58,.55);color:#fff}.gc3-scorebar{display:flex;align-items:center;gap:8px}.gc3-scorebar i{flex:1;min-width:80px;height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.gc3-scorebar b{display:block;height:100%;border-radius:inherit;background:var(--gc3-blue)}
.gc3-funnel{display:grid;gap:10px}.gc3-funnel div{display:grid;grid-template-columns:60px minmax(0,1fr) 46px;align-items:center;gap:10px}.gc3-funnel span{color:var(--gc3-ink2);font-weight:900}.gc3-funnel i{height:30px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden}.gc3-funnel b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gc3-blue),var(--gc3-yellow))}.gc3-funnel strong{text-align:right}.gc3-heatmap{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.gc3-heatmap span{min-height:46px;display:grid;place-items:center;border-radius:7px;background:rgba(32,183,216,.24);color:var(--gc3-ink);font-size:12px}.gc3-wordcloud{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0}.gc3-wordcloud span{border-radius:999px;padding:6px 12px;background:rgba(139,124,246,.14);color:#d8d3ff;font-weight:900}.gc3-wordcloud b{color:var(--gc3-ink2)}
.gc3-kb-tabs{display:flex;gap:4px;margin-bottom:16px;padding:4px;border-radius:10px;background:rgba(255,255,255,.04)}.gc3-kb-tabs button{flex:1;border-radius:7px}.gc3-excellent,.gc3-kb-item{border:1px solid rgba(226,170,56,.2);border-radius:12px;padding:14px;background:var(--gc3-card)}.gc3-excellent-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:6px;color:var(--gc3-yellow);background:rgba(226,170,56,.12);border:1px solid rgba(226,170,56,.25);font-weight:900;font-size:12px;margin-bottom:8px}.gc3-excellent p,.gc3-kb-item p{margin:8px 0;color:var(--gc3-ink);line-height:1.8}.gc3-kb-item{border-left:3px solid var(--gc3-blue)}.gc3-kb-item small{display:block;color:var(--gc3-ink2);margin-bottom:5px}.gc3-kb-item strong{font-size:15px}.gc3-kb-item blockquote{margin:8px 0 0;padding:9px 12px;border-left:2px solid var(--gc3-green);background:var(--gc3-card2);color:var(--gc3-blue);line-height:1.7}.gc3-empty{min-height:104px;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.08);border-radius:10px;color:var(--gc3-ink2)}
@media(max-width:980px){.growth-main-standalone{padding:0 14px 32px}.gc3-topbar{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.gc3-weakness-row,.gc3-grid-2{grid-template-columns:1fr}.gc3-record-head{align-items:flex-start;flex-direction:column}.gc3-call-header{grid-template-columns:42px minmax(0,1fr)}.gc3-score{grid-column:1/-1;text-align:left}.gc3-tags{padding-left:16px}}

/* Growth Center final pixel pass */
.growth-main-standalone{background:#151a27!important;padding:0!important;min-height:calc(100vh - 1px);font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.growth-main-standalone .pagination{margin:14px 0 20px}
.gcx-topbar{height:56px;padding:14px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;background:rgba(21,26,39,.8);position:sticky;top:0;z-index:9}
.gcx-topbar-title{font-size:16px;font-weight:800;color:rgba(255,255,255,.92);line-height:1}.gcx-topbar-title span{color:#20b7d8}.gcx-topbar-actions{display:flex;align-items:center;gap:8px}.gcx-page{padding:20px 24px}
.gcx-month{width:auto;min-width:126px;background:#242b3d;border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.92);border-radius:8px;padding:5px 10px;font-size:12px;outline:none}.gcx-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:14px;font-size:11px;font-weight:700}.gcx-tag.blue{background:rgba(32,183,216,.12);color:#20b7d8;border:1px solid rgba(32,183,216,.2)}.gcx-tag.green{background:rgba(54,194,117,.12);color:#36c275;border:1px solid rgba(54,194,117,.2)}
.gcx-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.gcx-kpi{height:126px;background:#1e2433;border-radius:12px;padding:16px;border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}.gcx-kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#20b7d8}.gcx-kpi.green:before{background:#36c275}.gcx-kpi.purple:before{background:#8b7cf6}.gcx-kpi.yellow:before{background:#e2aa38}.gcx-kpi span{display:block;font-size:11px;color:rgba(255,255,255,.45);margin-bottom:8px}.gcx-kpi strong{display:block;font-size:26px;line-height:1;font-weight:900;color:rgba(255,255,255,.92)}.gcx-kpi strong small{font-size:14px;font-weight:500}.gcx-kpi small{display:block;font-size:11px;color:rgba(255,255,255,.45);margin-top:6px}.gcx-kpi small:first-letter{color:#36c275}.gcx-kpi i{position:absolute;right:14px;top:14px;font-size:22px;opacity:.25;font-style:normal}
.gcx-growth-card{background:#1e2433;border-radius:12px;padding:18px;border:1px solid rgba(255,255,255,.08);margin-bottom:20px;min-height:270px}.gcx-card{background:#1e2433;border-radius:12px;padding:16px;border:1px solid rgba(255,255,255,.08);margin-bottom:20px}.gcx-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.gcx-title-left{display:flex;align-items:center;gap:8px}.gcx-title-left span{font-size:13px;font-weight:800}.gcx-title-left b,.gcx-section-title b{font-size:10px;padding:2px 8px;border-radius:8px;background:rgba(32,183,216,.1);color:#20b7d8}.gcx-legend{display:flex;gap:14px;font-size:11px;color:rgba(255,255,255,.45)}.gcx-legend i{width:8px;height:8px;border-radius:50%;background:#20b7d8;align-self:center}.gcx-legend i.muted{background:rgba(255,255,255,.2)}
.gcx-line{width:360px;display:grid;grid-template-columns:42px 1fr;min-height:180px;margin-top:18px}.gcx-y{display:grid;grid-template-rows:repeat(5,1fr);padding:0 0 26px;color:rgba(255,255,255,.25);font-size:12px}.gcx-bars{display:grid;grid-template-columns:repeat(10,1fr);align-items:end;gap:6px;padding:0 0 26px;background:repeating-linear-gradient(to bottom,transparent 0 25px,rgba(255,255,255,.035) 26px 27px)}.gcx-bars em{position:relative;height:var(--h);background:linear-gradient(180deg,rgba(32,183,216,.75),rgba(32,183,216,.16));border-radius:999px 999px 3px 3px}.gcx-bars u{position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#20b7d8;transform:translateX(-50%)}.gcx-bars small{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;color:rgba(255,255,255,.25);font-size:11px}
.gcx-section-title{font-size:13px;font-weight:800;color:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.gcx-section-title:not(.no-margin){margin:0 0 12px}.gcx-section-title.no-margin{margin-bottom:14px}.gcx-weak-row{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.gcx-weak{background:#1e2433;border-radius:10px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-left:3px solid #e2aa38;flex:1;min-width:180px}.gcx-weak.red{border-left-color:#e05252}.gcx-weak.purple{border-left-color:#8b7cf6}.gcx-weak h4{font-size:11px;font-weight:800;color:#e2aa38;margin:0 0 4px}.gcx-weak.red h4{color:#e05252}.gcx-weak.purple h4{color:#8b7cf6}.gcx-weak p{font-size:12px;color:rgba(255,255,255,.45);line-height:1.6;margin:0}.gcx-weak button{font-size:11px;color:#20b7d8;margin-top:6px;border:0;background:transparent;padding:0;cursor:pointer}
.gcx-weak.muted{border-left-color:rgba(255,255,255,.18)}
.gcx-weak.muted h4{color:rgba(255,255,255,.72)}
.gcx-filter-row{display:flex;gap:6px}.gcx-filter-row button,.gcx-kb-tabs button{border-radius:14px;font-size:11px;font-weight:700;padding:4px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:rgba(255,255,255,.45)}.gcx-filter-row button.blue,.gcx-filter-row button.active{background:rgba(32,183,216,.12);color:#20b7d8;border-color:rgba(32,183,216,.2)}.gcx-filter-row button.green{color:#36c275;border-color:rgba(54,194,117,.2);background:rgba(54,194,117,.08)}.gcx-filter-row button.red{color:#e05252;border-color:rgba(224,82,82,.2);background:rgba(224,82,82,.08)}
.gcx-call-list{display:flex;flex-direction:column;gap:10px}.gcx-call{background:#1e2433;border-radius:12px;border:1px solid rgba(255,255,255,.08);overflow:hidden}.gcx-call:hover{border-color:rgba(32,183,216,.3)}.gcx-call-head{display:flex;align-items:center;gap:12px;padding:12px 16px}.gcx-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;background:linear-gradient(135deg,#36c275,#2aaa62);color:#fff;flex-shrink:0}.gcx-call h3{font-size:13px;margin:0 0 2px;font-weight:800}.gcx-call p{margin:0}.gcx-call-head>div:nth-child(2){flex:1;min-width:0}.gcx-call-head p,.gcx-transcript{font-size:11px;color:rgba(255,255,255,.45)}.gcx-score{display:flex;align-items:baseline;gap:2px}.gcx-score b{font-size:22px;color:#36c275}.gcx-score small{font-size:11px;color:rgba(255,255,255,.45)}.gcx-call-body{padding:0 16px 14px;border-top:1px solid rgba(255,255,255,.08)}.gcx-tags{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.gcx-tags span{font-size:10px;padding:2px 8px;border-radius:14px;background:rgba(139,124,246,.12);color:#8b7cf6;border:1px solid rgba(139,124,246,.2)}.gcx-transcript{background:#242b3d;border-radius:8px;padding:10px 12px;line-height:1.7;margin:12px 0;max-height:120px;overflow-y:auto}.gcx-ai{background:#242b3d;border-radius:8px;padding:10px 12px;border-left:2px solid #36c275;margin-top:10px}.gcx-ai.purple{border-left-color:#8b7cf6}.gcx-ai b{display:block;color:rgba(255,255,255,.45);font-size:10px;margin-bottom:6px}.gcx-ai p{font-size:12px;color:rgba(255,255,255,.92);line-height:1.6}.gcx-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.gcx-btn,.gcx-primary{border:none;border-radius:6px;font-size:11px;font-weight:800;padding:5px 12px;text-decoration:none;cursor:pointer}.gcx-btn.blue,.gcx-primary{background:rgba(32,183,216,.12);color:#20b7d8;border:1px solid rgba(32,183,216,.2)}.gcx-btn.purple{background:rgba(139,124,246,.12);color:#8b7cf6;border:1px solid rgba(139,124,246,.2)}.gcx-btn.yellow{background:rgba(226,170,56,.12);color:#e2aa38;border:1px solid rgba(226,170,56,.2)}.gcx-btn.red{background:rgba(224,82,82,.12);color:#e05252;border:1px solid rgba(224,82,82,.2)}
.gcx-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;align-items:start;margin-bottom:20px}.gcx-team{width:100%;border-collapse:collapse}.gcx-team th{font-size:11px;color:rgba(255,255,255,.45);text-align:left;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700}.gcx-team td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px}.gcx-team tr:hover td{background:rgba(255,255,255,.02)}.rank{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px}.rank.r1{background:#e2aa38;color:#000}.rank.r2{background:rgba(255,255,255,.2)}.rank.r3{background:rgba(240,123,58,.5)}.teacher-dot{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:#36c275;color:#fff;margin-right:6px;font-size:11px}.scorebar{display:inline-block;width:62px;height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;margin-right:8px}.scorebar u{display:block;height:100%;background:#36c275}.gcx-danger-note{margin-top:12px;padding:10px;background:rgba(224,82,82,.07);border-radius:8px;border:1px solid rgba(224,82,82,.15);font-size:11px;color:rgba(255,255,255,.45)}
.gcx-funnel{display:flex;flex-direction:column;gap:8px}.gcx-funnel div{display:grid;grid-template-columns:62px 1fr 38px;align-items:center;gap:10px}.gcx-funnel label{font-size:12px;color:rgba(255,255,255,.45);text-align:right}.gcx-funnel span{height:32px;display:flex;align-items:center}.gcx-funnel b{height:100%;border-radius:4px;background:#20b7d8;color:#fff;display:flex;align-items:center;padding-left:10px;font-size:12px}.gcx-funnel em{font-style:normal;font-size:11px;color:#20b7d8}.gcx-note,.gcx-sub{font-size:11px;color:rgba(255,255,255,.45);margin-top:10px}.gcx-heat{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.gcx-heat span{height:38px;border-radius:6px;background:#20b7d8;display:grid;place-items:center;font-size:10px;text-align:center}.gcx-info{margin-top:12px;padding:10px;background:rgba(32,183,216,.07);border-radius:8px;border:1px solid rgba(32,183,216,.15);font-size:11px;color:rgba(255,255,255,.45);line-height:1.7}.gcx-cloud{display:flex;gap:10px;flex-wrap:wrap;padding:8px 0}.gcx-cloud span{padding:8px 14px;border-radius:20px;border:1px solid rgba(224,82,82,.4);color:#e05252;font-size:18px;font-weight:800}
.gcx-kb-tabs{display:flex;gap:4px;margin-bottom:16px;background:rgba(255,255,255,.04);border-radius:10px;padding:4px}.gcx-kb-tabs button{flex:1;text-align:center;padding:7px;border-radius:7px}.gcx-kb-tabs button.active{background:#1e2433;color:rgba(255,255,255,.92)}.gcx-kb-list{display:flex;flex-direction:column;gap:10px}.gcx-kb-list article{background:#242b3d;border-radius:8px;padding:10px 12px;border-left:3px solid #20b7d8}.gcx-kb-list small{font-size:10px;color:rgba(255,255,255,.45)}.gcx-kb-list h3{font-size:13px;margin:4px 0}.gcx-kb-list p,.gcx-kb-list blockquote{font-size:12px;line-height:1.7;color:rgba(255,255,255,.92)}.gcx-kb-list blockquote{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);color:#20b7d8}.gcx-empty{text-align:center;padding:40px 20px;color:rgba(255,255,255,.45);font-size:13px}
@media(max-width:1100px){.gcx-kpi-row,.gcx-grid-3{grid-template-columns:1fr}.gcx-weak-row{display:grid;grid-template-columns:1fr}.gcx-topbar{height:auto;align-items:flex-start;flex-direction:column}.gcx-page{padding:16px}.gcx-line{width:100%}}
body.growth-fullscreen main{max-width:none;width:100%;padding:0!important}
body.growth-fullscreen .content-wrap{background:#151a27}
body.growth-fullscreen #page-coach{width:100%}

body.school-map-fullscreen main{max-width:none;width:100%;padding:0!important}
body.school-map-fullscreen .content-wrap{background:#0f1320}
body.school-map-fullscreen #page-school_map{width:100%}
.school-map-v2{--sm2-bg:#0f1320;--sm2-card:#1e2433;--sm2-card2:#242b3d;--sm2-border:rgba(255,255,255,.08);--sm2-blue:#20b7d8;--sm2-yellow:#e2aa38;--sm2-purple:#8b7cf6;--sm2-green:#36c275;--sm2-red:#e05252;--sm2-amber:#f59e0b;--sm2-ink:rgba(255,255,255,.92);--sm2-ink2:rgba(255,255,255,.45);--sm2-ink3:rgba(255,255,255,.2);display:flex;flex-direction:column;height:calc(100vh - 1px);background:var(--sm2-bg);color:var(--sm2-ink);font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;font-size:13px;overflow:hidden}
.sm2-topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--sm2-card);border-bottom:1px solid var(--sm2-border);flex-shrink:0}
.sm2-topbar h2{font-size:15px;font-weight:600;margin:0;line-height:1.35;color:var(--sm2-ink)}
.sm2-sub{color:var(--sm2-ink2);font-size:12px;margin-top:2px}
.sm2-view-toggle{margin-left:auto;display:flex;gap:4px;background:var(--sm2-bg);border-radius:8px;padding:3px}
.sm2-view-toggle button{padding:4px 12px;border:none;border-radius:6px;background:transparent;color:var(--sm2-ink2);font-size:12px;cursor:pointer;transition:all .2s}
.sm2-view-toggle button.active{background:var(--sm2-blue);color:#fff}
.sm2-config-btn{margin-left:auto;border:1px solid rgba(32,183,216,.28);background:rgba(32,183,216,.12);color:#20d7ff;border-radius:9px;padding:6px 13px;font-size:12px;font-weight:800;cursor:pointer;transition:all .18s;white-space:nowrap}.sm2-config-btn:hover{background:rgba(32,183,216,.22);border-color:rgba(32,183,216,.55);transform:translateY(-1px)}
.sm2-config-btn+.sm2-view-toggle{margin-left:0}
.sm2-filter-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--sm2-card2);border-bottom:1px solid var(--sm2-border);flex-shrink:0}
.sm2-filter-chip{padding:4px 12px;border-radius:20px;border:1px solid var(--sm2-border);background:transparent;color:var(--sm2-ink2);font-size:12px;cursor:pointer;transition:all .2s}
.sm2-filter-chip.active{border-color:var(--sm2-blue);color:var(--sm2-blue);background:rgba(32,183,216,.12)}
.sm2-search-box{margin-left:auto;display:flex;align-items:center;gap:6px;background:var(--sm2-bg);border:1px solid var(--sm2-border);border-radius:8px;padding:4px 10px}
.sm2-search-box input{background:transparent;border:none;outline:none;color:var(--sm2-ink);font-size:12px;width:120px}
.sm2-search-box svg{opacity:.4}
.sm2-main{display:flex;flex:1;overflow:hidden;min-height:0}
.sm2-map-wrap{flex:1;position:relative;overflow:hidden;background:#131929}
.sm2-map-svg{width:100%;height:100%;display:block}
.sm2-right-panel{width:280px;flex-shrink:0;background:var(--sm2-card);border-left:1px solid var(--sm2-border);display:flex;flex-direction:column;overflow:hidden}
.sm2-panel-head{padding:12px 14px 8px;font-size:12px;font-weight:600;color:var(--sm2-ink2);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--sm2-border)}
.sm2-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--sm2-border)}
.sm2-kpi-card{background:var(--sm2-card2);border-radius:10px;padding:10px 12px}
.sm2-kpi-card .label{font-size:11px;color:var(--sm2-ink2);margin-bottom:4px}
.sm2-kpi-card .value{font-size:20px;font-weight:700;line-height:1.1;color:var(--sm2-ink)}
.sm2-kpi-card .value span{font-size:11px;font-weight:400;color:var(--sm2-ink2);margin-left:2px}
.sm2-kpi-card.blue .value{color:var(--sm2-blue)}.sm2-kpi-card.green .value{color:var(--sm2-green)}.sm2-kpi-card.amber .value{color:var(--sm2-amber)}.sm2-kpi-card.purple .value{color:var(--sm2-purple)}
.sm2-rank-list{flex:1;overflow-y:auto;padding:8px 0}
.sm2-rank-list::-webkit-scrollbar{width:4px}.sm2-rank-list::-webkit-scrollbar-track{background:transparent}.sm2-rank-list::-webkit-scrollbar-thumb{background:var(--sm2-border);border-radius:2px}
.sm2-rank-item{display:flex;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;transition:background .15s;border-left:3px solid transparent}
.sm2-rank-item:hover,.sm2-rank-item.selected{background:rgba(32,183,216,.06)}.sm2-rank-item.selected{border-left-color:var(--sm2-blue)}
.sm2-rank-num{width:18px;text-align:center;font-size:11px;font-weight:700;color:var(--sm2-ink3)}.sm2-rank-num.top{color:var(--sm2-amber)}
.sm2-rank-info{flex:1;min-width:0}.sm2-rank-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sm2-rank-meta{font-size:11px;color:var(--sm2-ink2);margin-top:1px}
.sm2-rank-bar-wrap{width:60px}.sm2-rank-bar-bg{background:var(--sm2-bg);border-radius:3px;height:4px;overflow:hidden}.sm2-rank-bar-fill{height:4px;border-radius:3px;transition:width .4s}.sm2-rank-leads{font-size:11px;font-weight:600;width:32px;text-align:right}
.sm2-bottom-cards-wrap{display:flex;flex-direction:column;background:var(--sm2-card);border-top:1px solid var(--sm2-border);flex-shrink:0}
.sm2-bottom-toggle{display:flex;align-items:center;padding:6px 16px;gap:8px;cursor:pointer}
.sm2-bottom-toggle span{font-size:11px;color:var(--sm2-ink2)}.sm2-bottom-toggle .arrow{margin-left:auto;color:var(--sm2-ink3);font-size:10px;transition:transform .2s}.sm2-bottom-toggle.open .arrow{transform:rotate(180deg)}
.sm2-bottom-cards{display:flex;gap:10px;padding:0 16px 12px;overflow-x:auto;transition:max-height .3s;max-height:160px}
.sm2-bottom-cards.closed{max-height:0;overflow:hidden;padding-bottom:0}.sm2-bottom-cards::-webkit-scrollbar{height:4px}.sm2-bottom-cards::-webkit-scrollbar-thumb{background:var(--sm2-border);border-radius:2px}
.sm2-school-card{background:var(--sm2-card2);border-radius:10px;min-width:180px;padding:10px 12px;border-left:3px solid var(--sm2-blue);flex-shrink:0;cursor:pointer;transition:all .2s;position:relative}
.sm2-school-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.4)}.sm2-school-card.selected{box-shadow:0 0 0 1.5px var(--sm2-blue),0 4px 20px rgba(32,183,216,.2)}
.sm2-sc-name{font-size:12px;font-weight:600;margin-bottom:6px}.sm2-sc-leads{font-size:20px;font-weight:700;color:var(--sm2-blue)}.sm2-sc-leads span{font-size:11px;color:var(--sm2-ink2);font-weight:400}
.sm2-sc-pct-bar{background:var(--sm2-bg);border-radius:3px;height:4px;margin:6px 0 4px;overflow:hidden}.sm2-sc-pct-fill{height:4px;border-radius:3px;background:var(--sm2-blue)}
.sm2-sc-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.sm2-sc-tags span{background:rgba(255,255,255,.08);border-radius:4px;padding:1px 6px;font-size:10px;color:var(--sm2-ink2)}
.sm2-sc-btn{position:absolute;top:8px;right:8px;padding:3px 8px;border-radius:6px;background:rgba(32,183,216,.15);border:1px solid rgba(32,183,216,.3);color:var(--sm2-blue);font-size:10px;cursor:pointer}.sm2-sc-btn:hover{background:rgba(32,183,216,.3)}
.sm2-sc-name{display:flex;align-items:center;gap:6px;padding-right:42px}.sm2-sc-icon{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:7px;background:rgba(32,183,216,.14);box-shadow:inset 0 0 0 1px rgba(32,183,216,.22);font-size:12px;flex:none}
.sm2-rainbow-fill{background:linear-gradient(90deg,#22d3ee 0%,#36c275 34%,#e2aa38 68%,#ff6b7a 100%)!important;box-shadow:0 0 12px rgba(32,183,216,.2)}
.sm2-school-card:hover .sm2-rainbow-fill{filter:saturate(1.2) brightness(1.08)}
.sm2-modal-mask{position:fixed;inset:0;background:rgba(3,8,14,.68);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px}
.sm2-school-modal{width:min(980px,calc(100vw - 44px));max-height:calc(100vh - 44px);overflow:auto;background:#151b2a;border:1px solid rgba(32,183,216,.24);border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.58);color:var(--sm2-ink)}
.sm2-school-modal::-webkit-scrollbar{width:6px}.sm2-school-modal::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:999px}
.sm2-modal-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sm2-modal-head h3{margin:0;font-size:24px;line-height:1.2}.sm2-modal-head p{margin:6px 0 0;color:rgba(255,255,255,.48);font-size:13px}.sm2-modal-x{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:rgba(255,255,255,.72);font-size:24px;cursor:pointer}.sm2-modal-x:hover{background:rgba(255,107,122,.14);border-color:rgba(255,107,122,.35);color:#ff8b97}
.sm2-modal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 24px}.sm2-modal-kpis div{border-radius:14px;padding:14px;background:#1e2638;border:1px solid rgba(255,255,255,.07);border-top:3px solid var(--sm2-blue)}.sm2-modal-kpis div:nth-child(2){border-top-color:var(--sm2-green)}.sm2-modal-kpis div:nth-child(3){border-top-color:var(--sm2-yellow)}.sm2-modal-kpis div:nth-child(4){border-top-color:var(--sm2-purple)}.sm2-modal-kpis span{display:block;color:rgba(255,255,255,.48);font-size:12px}.sm2-modal-kpis b{display:block;margin-top:8px;font-size:30px;line-height:1;color:#fff}
.sm2-modal-section{padding:0 24px 22px}.sm2-modal-title{display:flex;align-items:center;gap:10px;margin:2px 0 10px;font-size:16px;font-weight:800}.sm2-modal-title span{font-size:12px;color:rgba(255,255,255,.45);font-weight:500}.sm2-modal-title button{margin-left:auto;border:1px solid rgba(32,183,216,.28);background:rgba(32,183,216,.12);color:#22d3ee;border-radius:10px;padding:7px 12px;cursor:pointer}.sm2-modal-title button:hover{background:rgba(32,183,216,.22)}
.sm2-modal-table-wrap{border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;background:#111827}.sm2-modal-table-wrap.lead-list{max-height:330px;overflow:auto}.sm2-modal-table{width:100%;border-collapse:collapse}.sm2-modal-table th{padding:12px 14px;text-align:left;color:rgba(255,255,255,.48);font-size:12px;background:rgba(255,255,255,.03)}.sm2-modal-table td{padding:13px 14px;border-top:1px solid rgba(255,255,255,.06);font-size:13px;vertical-align:middle}.sm2-modal-table tr:hover td{background:rgba(32,183,216,.055)}.sm2-modal-table small{display:block;margin-top:4px;color:rgba(255,255,255,.45)}.sm2-modal-bar{height:7px;min-width:120px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.sm2-modal-bar i{display:block;height:100%;border-radius:999px}.sm2-modal-pill{display:inline-flex;border-radius:999px;padding:3px 8px;background:rgba(32,183,216,.13);color:#22d3ee;font-size:12px}.sm2-modal-table .good{color:#36c275}.sm2-modal-table .warn{color:#e2aa38}.sm2-modal-table .danger{color:#ff6b7a}.sm2-modal-table .muted{color:rgba(255,255,255,.4);font-weight:500}
.sm2-tooltip{position:fixed;background:rgba(14,19,32,.96);border:1px solid rgba(32,183,216,.3);border-radius:12px;padding:12px 14px;min-width:180px;pointer-events:none;z-index:999;opacity:0;transition:opacity .15s;box-shadow:0 8px 32px rgba(0,0,0,.6)}
.sm2-tooltip.show{opacity:1}.sm2-tt-name{font-size:13px;font-weight:600;margin-bottom:8px}.sm2-tt-row{display:flex;justify-content:space-between;font-size:11px;color:var(--sm2-ink2);margin-bottom:3px}.sm2-tt-row b{color:var(--sm2-ink)}
.sm2-tt-grade{margin-top:8px}.sm2-tt-grade-label{font-size:10px;color:var(--sm2-ink2);margin-bottom:4px}.sm2-grade-bar{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:10px;color:var(--sm2-ink2)}.sm2-grade-bar span{width:40px}.sm2-grade-bar div{flex:1;background:rgba(255,255,255,.08);border-radius:2px;height:5px;overflow:hidden}.sm2-grade-bar i{display:block;height:5px;border-radius:2px;background:var(--sm2-blue)}.sm2-grade-bar b{width:24px;text-align:right;color:var(--sm2-ink);font-weight:600}
.sm2-tooltip{width:360px;max-width:calc(100vw - 28px);padding:14px;background:rgba(17,23,37,.97);border-color:rgba(32,183,216,.32);box-shadow:0 18px 56px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.03)}
.sm2-tt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.sm2-tt-head .sm2-tt-name{margin:0 0 3px;font-size:14px;line-height:1.25;color:var(--sm2-ink)}.sm2-tt-meta{font-size:10.5px;color:var(--sm2-ink2);line-height:1.35}.sm2-tt-rate{flex:none;min-width:48px;text-align:center;border-radius:999px;padding:5px 8px;background:rgba(32,183,216,.14);border:1px solid rgba(32,183,216,.28);color:var(--sm2-blue);font-size:15px}
.sm2-tt-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 11px}.sm2-tt-kpi{padding:7px 6px;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.065)}.sm2-tt-kpi span{display:block;font-size:10px;color:var(--sm2-ink2);white-space:nowrap}.sm2-tt-kpi b{display:block;margin-top:3px;font-size:15px;line-height:1;color:var(--sm2-ink)}
.sm2-tt-grade-title{display:flex;align-items:center;justify-content:space-between;margin:6px 0 7px;font-size:11px;font-weight:700;color:rgba(255,255,255,.78)}.sm2-tt-grade-title:after{content:"实际 / 已有 / 差额";font-size:10px;font-weight:500;color:var(--sm2-ink2)}.sm2-tt-grade-table{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow:hidden}.sm2-gc-row{display:grid;grid-template-columns:50px 1fr 42px;align-items:center;gap:8px;padding:7px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05)}.sm2-gc-grade{font-size:11px;font-weight:700;color:var(--sm2-ink);white-space:nowrap}.sm2-gc-body{min-width:0}.sm2-gc-line{height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.sm2-gc-line i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sm2-blue),var(--sm2-yellow))}.sm2-gc-meta{display:flex;gap:7px;margin-top:4px;font-size:9.5px;color:var(--sm2-ink2);white-space:nowrap}.sm2-gc-rate{font-size:12px;font-weight:800;text-align:right;color:var(--sm2-blue)}.sm2-gc-rate.good{color:var(--sm2-green)}.sm2-gc-rate.warn{color:var(--sm2-yellow)}.sm2-gc-rate.low{color:#ff6b7a}.sm2-gc-rate.unset{color:var(--sm2-ink2);font-weight:600}.sm2-tt-empty,.sm2-tt-note{margin-top:8px;padding:8px 10px;border-radius:9px;background:rgba(226,170,56,.1);border:1px solid rgba(226,170,56,.18);color:#eac773;font-size:10.5px;line-height:1.5}.sm2-tt-note{margin-bottom:0}
@keyframes sm2-pulse-ring{0%{r:16;opacity:.6}100%{r:30;opacity:0}}.sm2-pulse-ring{animation:sm2-pulse-ring 1.8s ease-out infinite}.sm2-pulse-ring2{animation:sm2-pulse-ring 1.8s ease-out .6s infinite}.sm2-pulse-ring3{animation:sm2-pulse-ring 1.8s ease-out 1.2s infinite}
.sm2-school-node{cursor:pointer}
.sm2-node-count{opacity:0;transition:opacity .15s}
.sm2-school-node:hover .sm2-node-count,.sm2-school-node.selected .sm2-node-count{opacity:1}
.sm2-list-view{display:none;flex:1;flex-direction:column;overflow:hidden;background:#131929}.sm2-list-view.active{display:flex}.sm2-list-table-wrap{flex:1;overflow-y:auto}.sm2-list-table-wrap::-webkit-scrollbar{width:4px}.sm2-list-table-wrap::-webkit-scrollbar-thumb{background:var(--sm2-border);border-radius:2px}
table.sm2-lt{width:100%;border-collapse:collapse}table.sm2-lt th{padding:8px 14px;text-align:left;font-size:11px;color:var(--sm2-ink2);font-weight:500;border-bottom:1px solid var(--sm2-border);position:sticky;top:0;background:var(--sm2-card2)}table.sm2-lt td{padding:9px 14px;border-bottom:1px solid var(--sm2-border);font-size:12px}table.sm2-lt tr:hover td{background:rgba(32,183,216,.04)}
.sm2-lt-name-cell{display:flex;align-items:center;gap:8px}.sm2-lt-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sm2-lt-pct-bar{display:flex;align-items:center;gap:6px}.sm2-lt-pct-fill-wrap{flex:1;background:var(--sm2-bg);border-radius:2px;height:5px;overflow:hidden}.sm2-lt-pct-fill{height:5px;border-radius:2px}.sm2-lt-pct-bar span{color:var(--sm2-ink2);width:30px;text-align:right}.sm2-grade-tags{display:flex;gap:3px;flex-wrap:wrap}.sm2-grade-tags span{background:rgba(255,255,255,.08);border-radius:3px;padding:1px 5px;font-size:10px;color:var(--sm2-ink2)}
.sm2-btn-view{padding:3px 10px;border-radius:6px;border:1px solid var(--sm2-border);background:transparent;color:var(--sm2-blue);font-size:11px;cursor:pointer;white-space:nowrap}.sm2-btn-view:hover{background:rgba(32,183,216,.1);border-color:var(--sm2-blue)}
.sm2-detail-banner{background:var(--sm2-card2);border-bottom:1px solid var(--sm2-border);padding:10px 16px;display:flex;align-items:center;gap:12px;flex-shrink:0;transition:all .3s}.sm2-detail-banner.hidden{display:none}.sm2-db-name{font-size:13px;font-weight:600}.sm2-db-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}.sm2-db-badges span{font-size:10px;padding:2px 7px;border-radius:4px}.sm2-db-close{margin-left:auto;color:var(--sm2-ink2);cursor:pointer;font-size:14px;border:0;background:transparent}.sm2-db-action{margin-left:auto;padding:5px 12px;border-radius:8px;background:var(--sm2-blue);border:none;color:#fff;font-size:12px;cursor:pointer}
@media(max-width:960px){.school-map-v2{height:auto;min-height:100vh}.sm2-main{flex-direction:column}.sm2-right-panel{width:100%;max-height:260px;border-left:0;border-top:1px solid var(--sm2-border)}.sm2-filter-bar{flex-wrap:wrap}.sm2-search-box{margin-left:0;width:100%}.sm2-search-box input{width:100%}.sm2-map-wrap{height:520px}.sm2-kpi-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:640px){.sm2-kpi-grid{grid-template-columns:1fr 1fr}.sm2-view-toggle{margin-left:0}.sm2-topbar{align-items:flex-start;flex-direction:column}.sm2-map-wrap{height:420px}}

/* School AI knowledge base import */
.gcx-kb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.gcx-kb-head h3{margin:0 0 6px;font-size:18px}
.gcx-kb-head p{margin:0;color:rgba(255,255,255,.48);font-size:13px}
.gcx-kb-stats,.gcx-kb-category-row{display:flex;gap:8px;flex-wrap:wrap}
.gcx-kb-stats span,.gcx-kb-category-row span{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:rgba(32,183,216,.1);border:1px solid rgba(32,183,216,.18);color:#20b7d8;padding:5px 10px;font-size:12px;font-weight:800}
.gcx-kb-category-row{margin-bottom:14px}
.gcx-kb-category-row b{color:#fff}
.gcx-knowledge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gcx-knowledge-list article{display:flex;justify-content:space-between;gap:12px;background:#242b3d;border:1px solid rgba(255,255,255,.07);border-left:3px solid #20b7d8;border-radius:10px;padding:13px}
.gcx-knowledge-list article.off{opacity:.55;border-left-color:rgba(255,255,255,.25)}
.gcx-knowledge-list small{color:rgba(255,255,255,.45);font-size:11px}
.gcx-knowledge-list h3{font-size:14px;margin:5px 0;color:#fff}
.gcx-knowledge-list p{margin:0;color:rgba(255,255,255,.72);font-size:12px;line-height:1.65}
.knowledge-import{display:grid;gap:14px}
.knowledge-import-result{display:grid;gap:12px}
.knowledge-import-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid rgba(32,183,216,.22);background:rgba(32,183,216,.08);border-radius:12px;padding:12px 14px}
.knowledge-import-summary span{color:rgba(255,255,255,.58);font-size:13px}
.knowledge-import-list{display:grid;gap:12px;max-height:48vh;overflow:auto;padding-right:4px}
.knowledge-import-item{display:grid;grid-template-columns:80px 1fr;gap:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:12px;padding:12px}
.knowledge-import-check{font-weight:900;color:#20b7d8}
.knowledge-import-fields{display:grid;grid-template-columns:1.2fr 150px 110px 130px;gap:10px}
.knowledge-import-fields label{display:grid;gap:6px;color:rgba(255,255,255,.58);font-size:12px;font-weight:800}
.knowledge-import-fields .wide{grid-column:1/-1}
.knowledge-import-fields textarea{min-height:108px}
.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(8,20,32,.2),#081420 38%);padding-top:12px}
.excellent-detail{display:grid;gap:14px}.excellent-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid rgba(32,183,216,.18);background:rgba(32,183,216,.06);border-radius:12px;padding:12px}.excellent-detail-meta span{color:rgba(255,255,255,.72);font-size:13px}.excellent-detail section{display:grid;gap:8px}.excellent-detail h3{margin:0;color:#fff;font-size:15px}.excellent-detail-text{white-space:pre-wrap;line-height:1.75;color:rgba(255,255,255,.82);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px}.excellent-detail-text.good{border-left:3px solid #36c275}.excellent-detail-text.purple{border-left:3px solid #8b7cf6}
@media(max-width:900px){.gcx-knowledge-list{grid-template-columns:1fr}.knowledge-import-item,.knowledge-import-fields{grid-template-columns:1fr}.gcx-kb-head,.knowledge-import-summary{flex-direction:column;align-items:flex-start}}

/* Growth center team board: copied sizing/colors from growth_center_design.html */
.growth-main-standalone{background:#151a27!important;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.gcx-grid-3{display:grid!important;grid-template-columns:2fr 1fr 1fr!important;gap:16px!important;align-items:start!important;margin-bottom:20px!important}
.gcx-card{background:#1e2433!important;border-radius:12px!important;padding:16px!important;border:1px solid rgba(255,255,255,.08)!important}
.gcx-section-title{font-size:13px!important;font-weight:700!important;color:rgba(255,255,255,.92)!important;margin-bottom:12px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
.gcx-section-title.no-margin{margin-bottom:14px!important}
.gcx-team{width:100%!important;border-collapse:collapse!important}
.gcx-team th{font-size:11px!important;color:rgba(255,255,255,.45)!important;text-align:left!important;padding:8px 12px!important;border-bottom:1px solid rgba(255,255,255,.08)!important;font-weight:600!important;white-space:nowrap!important}
.gcx-team td{padding:10px 12px!important;border-bottom:1px solid rgba(255,255,255,.04)!important;font-size:13px!important;vertical-align:middle!important;color:rgba(255,255,255,.92)!important}
.gcx-team tr:hover td{background:rgba(255,255,255,.02)!important}
.gcx-teacher-cell{display:flex!important;align-items:center!important}
.teacher-dot{width:28px!important;height:28px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:11px!important;font-weight:700!important;margin-right:6px!important;color:#fff!important}
.rank{width:20px!important;height:20px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;font-weight:800!important}
.rank.r1{background:#e2aa38!important;color:#000!important}
.rank.r2{background:rgba(255,255,255,.2)!important;color:rgba(255,255,255,.92)!important}
.rank.r3{background:rgba(240,123,58,.5)!important;color:#fff!important}
.rank.r4,.rank.r5,.rank.r6{background:rgba(255,255,255,.08)!important;color:rgba(255,255,255,.45)!important}
.score-bar-wrap{display:flex!important;align-items:center!important;gap:8px!important}
.score-bar-bg{flex:1!important;height:6px!important;background:rgba(255,255,255,.08)!important;border-radius:3px!important;overflow:hidden!important;min-width:62px!important}
.score-bar-fill{height:100%!important;border-radius:3px!important;transition:width .6s!important}
.score-num{font-size:12px!important;font-weight:700!important;min-width:28px!important}
.gcx-danger-note{margin-top:12px!important;padding:10px!important;background:rgba(224,82,82,.07)!important;border-radius:8px!important;border:1px solid rgba(224,82,82,.15)!important;font-size:11px!important;color:rgba(255,255,255,.45)!important;line-height:1.6!important}
.gcx-danger-note:first-line{color:#e05252!important;font-weight:700!important}
.gcx-funnel{display:flex!important;flex-direction:column!important;gap:4px!important}
.gcx-funnel .gcx-funnel-step{display:flex!important;align-items:center!important;gap:10px!important}
.gcx-funnel-label{font-size:12px!important;color:rgba(255,255,255,.45)!important;min-width:60px!important;text-align:right!important}
.gcx-funnel-bar-wrap{flex:1!important;position:relative!important;height:32px!important;display:flex!important;align-items:center!important}
.gcx-funnel-bar{height:100%!important;border-radius:4px!important;display:flex!important;align-items:center!important;padding-left:10px!important;font-size:12px!important;font-weight:600!important;color:#fff!important;min-width:40px!important;transition:width .8s!important}
.gcx-funnel-pct{font-size:11px!important;color:rgba(255,255,255,.45)!important;min-width:38px!important}
.gcx-funnel-arrow{display:block!important;color:rgba(255,255,255,.25)!important;font-size:10px!important;text-align:center!important;margin:0 0 0 70px!important}
.gcx-note.center{margin-top:12px!important;font-size:11px!important;color:rgba(255,255,255,.45)!important;text-align:center!important}
.gcx-sub{font-size:11px!important;color:rgba(255,255,255,.45)!important;margin:0 0 8px!important}
.gcx-heat-labels{display:grid!important;grid-template-columns:repeat(12,1fr)!important;gap:3px!important;margin-bottom:3px!important}
.gcx-heat-labels div{font-size:10px!important;color:rgba(255,255,255,.45)!important;text-align:center!important}
.gcx-heatmap-grid{display:grid!important;grid-template-columns:repeat(12,1fr)!important;gap:3px!important;margin-top:8px!important}
.gcx-heat-cell{height:28px!important;border-radius:4px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;color:rgba(255,255,255,.6)!important;cursor:pointer!important;transition:transform .1s!important}
.gcx-heat-cell:hover{transform:scale(1.1)!important}
.gcx-info{margin-top:12px!important;padding:10px!important;background:rgba(32,183,216,.07)!important;border-radius:8px!important;border:1px solid rgba(32,183,216,.15)!important;font-size:11px!important;color:rgba(255,255,255,.45)!important;line-height:1.55!important}
.gcx-info-title{font-size:11px!important;font-weight:700!important;color:#20b7d8!important;margin-bottom:3px!important}
.gcx-info strong{color:rgba(255,255,255,.92)!important}
.gcx-cloud{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;padding:8px 0!important}
.gcx-cloud .gcx-wc-word{padding:5px 12px!important;border-radius:20px!important;cursor:pointer!important;transition:all .15s!important;font-weight:600!important;border:1px solid transparent!important;background:transparent!important;line-height:1.2!important}
.gcx-cloud .gcx-wc-word:hover{opacity:.8!important;transform:scale(1.05)!important}
.gcx-cloud-tip{margin-top:12px!important;padding:10px 14px!important;background:#242b3d!important;border-radius:8px!important;font-size:12px!important;color:rgba(255,255,255,.45)!important;line-height:1.7!important}
.gcx-cloud-tip strong{color:rgba(255,255,255,.92)!important}
.gcx-growth-card{background:#1e2433!important;border-radius:12px!important;padding:18px!important;border:1px solid rgba(255,255,255,.08)!important;margin-bottom:20px!important;min-height:270px!important}
.gcx-growth-canvas{display:block!important;width:560px!important;max-width:100%!important;height:140px!important;margin-top:16px!important}
.gcx-line,.gcx-bars,.gcx-y{display:none!important}
@media(max-width:1100px){.gcx-grid-3{grid-template-columns:1fr!important}.gcx-heat-labels,.gcx-heatmap-grid{grid-template-columns:repeat(6,1fr)!important}}

/* Growth center KPI cards: match growth_center_design.html exactly */
.gcx-kpi-row{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:12px!important;margin-bottom:20px!important}
.gcx-kpi{height:126px!important;background:#1e2433!important;border-radius:12px!important;padding:16px!important;border:1px solid rgba(255,255,255,.08)!important;position:relative!important;overflow:hidden!important;cursor:default!important}
.gcx-kpi:before{content:""!important;position:absolute!important;top:0!important;left:0!important;right:0!important;height:3px!important;background:var(--gcx-kpi-color,#20b7d8)!important}
.gcx-kpi-label{font-size:11px!important;color:rgba(255,255,255,.45)!important;margin-bottom:8px!important;font-weight:400!important;line-height:1.2!important}
.gcx-kpi-value{font-size:26px!important;font-weight:800!important;color:rgba(255,255,255,.92)!important;line-height:1!important;margin:0!important}
.gcx-kpi-value small{font-size:14px!important;font-weight:400!important;color:rgba(255,255,255,.92)!important}
.gcx-kpi-sub{font-size:11px!important;color:rgba(255,255,255,.45)!important;margin-top:4px!important;display:flex!important;align-items:center!important;gap:4px!important;line-height:1.4!important}
.gcx-kpi-sub strong{display:inline!important;font-size:11px!important;line-height:1.4!important;color:rgba(255,255,255,.92)!important;font-weight:700!important;margin:0!important}
.gcx-kpi-delta{display:inline!important;font-size:11px!important;font-weight:600!important;margin:0!important}
.gcx-kpi-delta.up{color:#36c275!important}
.gcx-kpi-delta.down{color:#e05252!important}
.gcx-kpi-icon{position:absolute!important;right:14px!important;top:14px!important;font-size:22px!important;opacity:.25!important;font-style:normal!important;line-height:1!important}
.gcx-month-now{display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:14px!important;padding:4px 10px!important;font-size:11px!important;font-weight:700!important;border:1px solid rgba(32,183,216,.2)!important;background:rgba(32,183,216,.12)!important;color:#20b7d8!important;cursor:pointer!important}
.gcx-month-now:hover,.gcx-month-now.active{background:rgba(32,183,216,.2)!important;border-color:rgba(32,183,216,.45)!important}
.gcx-month{width:auto!important;min-width:126px!important;background:#242b3d!important;border:1px solid rgba(255,255,255,.08)!important;color:rgba(255,255,255,.92)!important;border-radius:8px!important;padding:5px 10px!important;font-size:12px!important;outline:none!important;cursor:pointer!important}
@media(max-width:1100px){.gcx-kpi-row{grid-template-columns:repeat(2,1fr)!important}}

/* Growth center call review collapse: align with growth_center_design.html */
.gcx-review-page .gcx-weak-title{margin:20px 0 12px!important}
.gcx-review-page .gcx-weak-title b,
.gcx-review-page .gcx-record-title b{display:inline-flex!important;align-items:center!important;padding:3px 9px!important;border-radius:999px!important;background:rgba(226,170,56,.15)!important;color:#e2aa38!important;font-size:12px!important;line-height:1!important}
.gcx-review-page .gcx-record-title{align-items:center!important;margin:22px 0 12px!important}
.gcx-filter-row{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.gcx-filter-row button{border:1px solid rgba(255,255,255,.08)!important;border-radius:999px!important;background:rgba(255,255,255,.035)!important;color:rgba(255,255,255,.45)!important;padding:7px 14px!important;font-size:12px!important;font-weight:900!important;cursor:pointer!important}
.gcx-filter-row button:hover,.gcx-filter-row button.active{color:#20b7d8!important;background:rgba(32,183,216,.12)!important;border-color:rgba(32,183,216,.35)!important}
.gcx-filter-row button.green{color:#36c275!important;background:rgba(54,194,117,.1)!important}
.gcx-filter-row button.red{color:#e05252!important;background:rgba(224,82,82,.1)!important}
.gcx-call-list{display:grid!important;gap:10px!important}
.gcx-call{background:#1e2433!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important;overflow:hidden!important;transition:border-color .15s,transform .15s,background .15s!important}
.gcx-call:hover{border-color:rgba(32,183,216,.35)!important;background:rgba(36,43,61,.92)!important;transform:translateY(-1px)!important}
.gcx-call.good{border-color:rgba(54,194,117,.28)!important}
.gcx-call.bad{border-color:rgba(224,82,82,.28)!important}
.gcx-call-head{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto!important;gap:12px!important;align-items:center!important;padding:14px 16px!important;cursor:pointer!important}
.gcx-avatar{width:38px!important;height:38px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:linear-gradient(135deg,#36c275,#8b7cf6)!important;color:#fff!important;font-weight:1000!important;font-size:16px!important;line-height:1!important}
.gcx-call.bad .gcx-avatar{background:linear-gradient(135deg,#e05252,#c04444)!important}
.gcx-call h3{margin:0 0 4px!important;font-size:14px!important;line-height:1.35!important;color:rgba(255,255,255,.92)!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
.gcx-call p{margin:0!important;font-size:12px!important;color:rgba(255,255,255,.45)!important;line-height:1.5!important}
.gcx-score-wrap{display:flex!important;align-items:center!important;gap:10px!important}
.gcx-score{min-width:54px!important;text-align:right!important}
.gcx-score b{font-size:24px!important;line-height:1!important;color:#36c275!important}
.gcx-call.bad .gcx-score b{color:#e05252!important}
.gcx-score small{font-size:11px!important;color:rgba(255,255,255,.45)!important;margin-left:2px!important}
.gcx-score span{font-size:12px!important;color:rgba(255,255,255,.45)!important}
.gcx-call-arrow{color:rgba(255,255,255,.45)!important;font-size:11px!important;transition:transform .18s!important;display:inline-block!important}
.gcx-call.expanded .gcx-call-arrow{transform:rotate(180deg)!important}
.gcx-call-body{display:none!important;padding:0 16px 16px 74px!important;border-top:1px solid rgba(255,255,255,.06)!important}
.gcx-call.expanded .gcx-call-body{display:block!important}
.gcx-tags{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin:12px 0!important}
.gcx-tags span{display:inline-flex!important;align-items:center!important;padding:4px 10px!important;border-radius:14px!important;background:rgba(139,124,246,.12)!important;color:#bdb5ff!important;border:1px solid rgba(139,124,246,.22)!important;font-size:12px!important;font-weight:800!important}
.gcx-transcript{background:#242b3d!important;border-radius:8px!important;padding:12px 14px!important;color:rgba(255,255,255,.72)!important;font-size:12px!important;line-height:1.75!important;max-height:150px!important;overflow:auto!important;white-space:pre-wrap!important;margin-bottom:14px!important}
.gcx-ai-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:10px!important}
.gcx-ai{background:#242b3d!important;border-left:3px solid #36c275!important;border-radius:8px!important;padding:12px!important}
.gcx-ai.purple{border-left-color:#8b7cf6!important}
.gcx-ai.full{grid-column:1 / -1!important}
.gcx-ai b{display:block!important;font-size:12px!important;color:rgba(255,255,255,.72)!important;margin-bottom:6px!important}
.gcx-ai p{font-size:12px!important;color:rgba(255,255,255,.66)!important;line-height:1.7!important}
.gcx-concern-tags{display:flex!important;gap:6px!important;flex-wrap:wrap!important}
.gcx-concern-tags span{padding:4px 10px!important;border-radius:999px!important;background:rgba(226,170,56,.1)!important;border:1px solid rgba(226,170,56,.18)!important;color:#e2aa38!important;font-size:12px!important;font-weight:700!important}
.gcx-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin-top:14px!important}
.gcx-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:34px!important;border-radius:8px!important;padding:0 12px!important;border:1px solid rgba(255,255,255,.08)!important;background:#242b3d!important;color:rgba(255,255,255,.82)!important;font-size:12px!important;font-weight:900!important;text-decoration:none!important;cursor:pointer!important}
.gcx-btn.blue{background:rgba(32,183,216,.15)!important;color:#20b7d8!important;border-color:rgba(32,183,216,.25)!important}
.gcx-btn.purple{background:rgba(139,124,246,.15)!important;color:#bdb5ff!important;border-color:rgba(139,124,246,.25)!important}
.gcx-btn.yellow{background:rgba(226,170,56,.14)!important;color:#e2aa38!important;border-color:rgba(226,170,56,.25)!important}
.gcx-btn:hover{filter:brightness(1.08)!important;transform:translateY(-1px)!important}
@media(max-width:760px){.gcx-call-head{grid-template-columns:38px minmax(0,1fr)!important}.gcx-score-wrap{grid-column:2!important;justify-content:flex-start!important}.gcx-call-body{padding:0 12px 14px!important}.gcx-ai-grid{grid-template-columns:1fr!important}}

/* Growth center word cloud: keep same-color outline from reference design */
.gcx-cloud .gcx-wc-word{
  border:1px solid currentColor!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.9!important;
}
.gcx-cloud .gcx-wc-word:hover{
  opacity:1!important;
  transform:scale(1.05)!important;
  background:rgba(255,255,255,.03)!important;
}
.gcx-kpi{min-height:126px!important;height:auto!important;overflow:visible!important}
.gcx-kpi-sub{display:block!important;white-space:normal!important;overflow:visible!important}
.gcx-kpi-value small{display:inline!important;margin:0!important}
.gcx-kpi-sub span{display:inline!important;margin:0!important}
.gcx-kpi-sub .gcx-kpi-good{color:#36c275!important;font-weight:700!important}
.gcx-kpi-sub .gcx-kpi-bad{color:#e05252!important;font-weight:700!important}
.gcx-kpi-sub .gcx-kpi-muted{color:rgba(255,255,255,.45)!important}
.gcx-kpi-sub strong{color:rgba(255,255,255,.92)!important;font-weight:700!important}

.funnel-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.funnel-row span{width:82px;flex-shrink:0;color:var(--ink2);font-size:13px;font-weight:800}
.funnel-row>div{flex:1}
.funnel-row b{width:42px;text-align:right;font-size:17px}
.funnel-row em{width:42px;text-align:right;color:var(--muted);font-size:12px;font-style:normal}
.trial-ai-entry{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.trial-ai-entry h3{margin:0 0 6px}
.trial-ai-entry p{margin:0;color:var(--muted)}
.trial-ai-modal{min-width:min(860px,86vw)}
.trial-ai-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.trial-ai-kpis div{padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035)}
.trial-ai-kpis span,.trial-ai-kpis small{display:block;color:var(--muted);font-size:12px}
.trial-ai-kpis b{display:block;margin:4px 0;font-size:28px;line-height:1}
.trial-ai-report{border:1px solid rgba(42,190,218,.28);border-radius:14px;background:rgba(42,190,218,.07);padding:16px}
.trial-ai-report-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.trial-ai-report-head span{color:var(--muted);font-size:12px}
.trial-ai-report p{margin:0;color:var(--ink2);line-height:1.8}
.trial-ai-samples{margin-top:14px}
.trial-ai-samples h3{margin:0 0 8px}
.trial-ai-sample{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025)}
.trial-ai-sample:first-of-type{border-radius:10px 10px 0 0}
.trial-ai-sample:last-of-type{border-bottom:0;border-radius:0 0 10px 10px}
.trial-ai-sample span{color:var(--muted)}
.trial-review-entry{margin-top:16px}
.trial-review-entry-list{display:grid;gap:10px}
.trial-review-entry-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid rgba(42,190,218,.18);border-radius:14px;background:rgba(255,255,255,.025);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.trial-review-entry-item:hover{transform:translateY(-1px);border-color:rgba(42,190,218,.45);background:rgba(42,190,218,.06)}
.trial-review-entry-item strong{font-size:17px}
.trial-review-entry-item p{margin:6px 0 0;color:var(--muted);font-size:13px}
.review-empty{min-height:220px;display:grid;place-items:center;text-align:center}
.review-empty b{display:block;font-size:20px;margin-bottom:8px}
.review-empty span{color:var(--muted)}
.review-board{display:grid;gap:16px}
.review-board-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.review-kpi{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px 18px;min-height:104px}
.review-kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--blue)}
.review-kpi.rk-1:before{background:var(--yellow)}.review-kpi.rk-2:before{background:var(--purple)}.review-kpi.rk-3:before{background:var(--green)}
.review-kpi span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}
.review-kpi b{display:block;font-size:34px;line-height:1;color:#fff}
.review-kpi small{display:block;color:var(--muted);margin-top:8px}
.review-workbench{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}
.review-session-panel{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden;position:sticky;top:14px}
.review-session-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.review-session-head strong{font-size:16px}
.review-session-head span{border-radius:999px;padding:3px 9px;background:rgba(42,190,218,.12);color:var(--blue);font-size:12px;font-weight:800}
.review-session-list{display:grid;gap:8px;max-height:680px;overflow:auto;padding:10px}
.review-session-item{width:100%;display:grid;gap:5px;padding:12px;border:1px solid transparent;border-left:3px solid var(--line2);border-radius:12px;background:rgba(255,255,255,.025);color:var(--ink);text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.review-session-item:hover{transform:translateY(-1px);background:rgba(42,190,218,.06);border-color:rgba(42,190,218,.28)}
.review-session-item.active{background:rgba(42,190,218,.09);border-color:rgba(42,190,218,.45);box-shadow:0 0 0 1px rgba(42,190,218,.12) inset}
.review-session-item.todo{border-left-color:var(--yellow)}.review-session-item.active{border-left-color:var(--blue)}.review-session-item.ready{border-left-color:var(--green)}.review-session-item.wait{border-left-color:var(--muted)}
.review-session-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.review-session-top b{font-size:15px}
.review-session-top em{font-style:normal;border-radius:999px;padding:2px 8px;background:rgba(255,255,255,.06);color:var(--muted);font-size:11px;white-space:nowrap}
.review-session-item.todo .review-session-top em{background:rgba(226,170,56,.12);color:var(--yellow)}
.review-session-item.active .review-session-top em{background:rgba(42,190,218,.12);color:var(--blue)}
.review-session-item.ready .review-session-top em{background:rgba(54,194,117,.12);color:var(--green)}
.review-session-item span:not(.review-session-top),.review-session-item small{color:var(--muted);font-size:12px;line-height:1.45}
.review-session-main{min-width:0;display:grid;gap:12px}
.review-current-card{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,rgba(42,190,218,.08),rgba(139,124,246,.04));padding:16px 18px}
.review-current-kicker{display:block;color:var(--blue);font-size:12px;font-weight:900;margin-bottom:5px}
.review-current-card h3{font-size:22px;margin:0 0 4px}
.review-current-card p{margin:0;color:var(--muted)}
.review-current-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.review-embedded{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.trial-review-page-embed.review-embedded{margin:0;min-height:720px}
.review-picker-list{display:grid;gap:10px;max-height:58vh;overflow:auto;margin-top:14px}
.review-picker-item{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--ink);padding:13px 14px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.review-picker-item:hover{transform:translateY(-1px);background:rgba(42,190,218,.06);border-color:rgba(42,190,218,.35)}
.review-picker-item strong{font-size:16px}
.review-picker-item span{color:var(--muted);font-size:12px}
.review-picker-item em{grid-row:1/3;grid-column:2;border-radius:999px;padding:3px 9px;background:rgba(42,190,218,.1);color:var(--blue);font-style:normal;font-size:12px;font-weight:800}
@media(max-width:1100px){.review-workbench{grid-template-columns:1fr}.review-session-panel{position:static}.review-session-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.review-board-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.review-session-list,.review-board-kpis{grid-template-columns:1fr}.review-current-card{align-items:flex-start;flex-direction:column}.review-current-actions{justify-content:flex-start}}

/* FIELD PROMO UI V2 - copied visual language from field_promo_redesign_1.html, scoped with fp- */
.fp-page {
  --fp-bg: #0f1320;
  --card: #1e2433;
  --card2: #242b3d;
  --card3: #2a3347;
  --border: rgba(255,255,255,0.07);
  --border2: rgba(255,255,255,0.13);
  --blue: #20b7d8;
  --blue-dim: rgba(32,183,216,0.12);
  --yellow: #e2aa38;
  --yellow-dim: rgba(226,170,56,0.12);
  --purple: #8b7cf6;
  --purple-dim: rgba(139,124,246,0.12);
  --green: #36c275;
  --green-dim: rgba(54,194,117,0.12);
  --red: #e05252;
  --red-dim: rgba(224,82,82,0.12);
  --ink: rgba(255,255,255,0.92);
  --ink2: rgba(255,255,255,0.45);
  --ink3: rgba(255,255,255,0.2);
  min-height: calc(100vh - 0px);
  margin: -24px;
  background: var(--fp-bg);
  color: var(--ink);
  font-family: -apple-system, 'PingFang SC', 'Helvetica Neue', sans-serif;
  font-size: 13px;
  overflow: hidden;
}
.fp-page button, .fp-page input, .fp-page select, .fp-page textarea { font-family: inherit; }
.fp-content { display: flex; flex-direction: column; min-height: 100vh; overflow: hidden; }
.fp-topbar { background: var(--card); border-bottom: 1px solid var(--border); padding: 0 20px; height: 52px; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.fp-topbar h1 { font-size: 15px; font-weight: 600; margin: 0; color: var(--ink); }
.fp-breadcrumb { color: var(--ink2); font-size: 12px; }
.fp-breadcrumb span { color: var(--ink3); margin: 0 4px; }
.fp-date-nav { display: flex; align-items: center; gap: 6px; margin-left: 20px; position: relative; }
.fp-date-nav-btn { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--border2); background: transparent; color: var(--ink2); font-size: 13px; display: flex; align-items: center; justify-content: center; transition: all .15s; }
.fp-date-nav-btn:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-dim); }
.fp-date-display { background: var(--card2); border: 1px solid var(--border2); border-radius: 8px; padding: 4px 12px; font-size: 13px; font-weight: 500; min-width: 108px; text-align: center; color: var(--ink); }
.fp-weekday { font-size: 10px; color: var(--ink2); margin-left: 4px; }
.fp-date-input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.fp-today-btn { padding: 4px 10px; border-radius: 8px; border: 1px solid var(--border2); background: transparent; color: var(--blue); font-size: 12px; transition: all .15s; }
.fp-today-btn:hover { background: var(--blue-dim); }
.fp-topbar-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.fp-btn-primary { padding: 6px 14px; border-radius: 8px; background: var(--blue); border: none; color: #fff; font-size: 12px; font-weight: 500; transition: opacity .15s; }
.fp-btn-primary:hover { opacity: .85; transform: translateY(-1px); }
.fp-btn-ghost { padding: 5px 12px; border-radius: 8px; border: 1px solid var(--border2); background: transparent; color: var(--ink2); font-size: 12px; transition: all .15s; }
.fp-btn-ghost:hover, .fp-btn-ghost.active { border-color: var(--blue); color: var(--blue); background: var(--blue-dim); }
.fp-body-wrap { display: flex; flex: 1; overflow: hidden; min-height: calc(100vh - 52px); }
.fp-main-col { flex: 1; overflow-y: auto; padding: 16px 20px; }
.fp-main-col::-webkit-scrollbar { width: 5px; }
.fp-main-col::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
.fp-right-col { width: 320px; flex-shrink: 0; border-left: 1px solid var(--border); overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; background: var(--fp-bg); }
.fp-right-col::-webkit-scrollbar { width: 4px; }
.fp-right-col::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }
.fp-kpi-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px; }
.fp-kpi-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; position: relative; overflow: visible; }
.fp-kpi-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; border-radius: 12px 12px 0 0; }
.fp-kpi-card.blue::before { background: var(--blue); }
.fp-kpi-card.green::before { background: var(--green); }
.fp-kpi-card.yellow::before { background: var(--yellow); }
.fp-kpi-card.purple::before { background: var(--purple); }
.fp-kpi-mark { position: absolute; right: 16px; top: 18px; font-size: 22px; line-height: 1; opacity: .22; filter: saturate(1.2); pointer-events: none; }
.fp-kpi-card.blue .fp-kpi-mark { color: var(--blue); }
.fp-kpi-card.yellow .fp-kpi-mark { color: var(--yellow); }
.fp-kpi-card.purple .fp-kpi-mark { color: var(--purple); }
.fp-kpi-label { font-size: 11px; color: var(--ink2); margin-bottom: 6px; display: flex; align-items: center; gap: 5px; }
.fp-kpi-value { font-size: 26px; font-weight: 700; line-height: 1; }
.fp-unit { font-size: 13px; font-weight: 400; color: var(--ink2); margin-left: 3px; }
.fp-kpi-meta { font-size: 11px; color: var(--ink2); margin-top: 5px; }
.fp-kpi-meta .up { color: var(--green); }
.fp-kpi-meta .down { color: var(--red); }
.fp-kpi-meta .flat { color: var(--ink2); }
.fp-kpi-card.blue .fp-kpi-value { color: var(--blue); }
.fp-kpi-card.green .fp-kpi-value { color: var(--green); }
.fp-kpi-card.yellow .fp-kpi-value { color: var(--yellow); }
.fp-kpi-card.purple .fp-kpi-value { color: var(--purple); }
.fp-kpi-sparkbar { display: flex; gap: 2px; align-items: flex-end; height: 24px; margin-top: 8px; }
.fp-kpi-sparkbar .fp-bar { flex: 1; border-radius: 2px; min-height: 3px; opacity: .5; position: relative; cursor: default; transition: opacity .15s ease, transform .15s ease; }
.fp-kpi-sparkbar .fp-bar.today { opacity: 1; }
.fp-kpi-sparkbar .fp-bar[data-tip]:hover { opacity: 1; transform: translateY(-2px); }
.fp-kpi-sparkbar .fp-bar[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  z-index: 80;
  min-width: 190px;
  max-width: 280px;
  padding: 8px 10px;
  border: 1px solid rgba(32,183,216,.45);
  border-radius: 8px;
  background: rgba(8,15,26,.96);
  color: var(--ink);
  font-size: 11px;
  line-height: 1.45;
  white-space: normal;
  box-shadow: 0 12px 28px rgba(0,0,0,.35);
  pointer-events: none;
}
.fp-kpi-sparkbar .fp-bar[data-tip]:hover::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: calc(100% + 3px);
  transform: translateX(-50%) rotate(45deg);
  z-index: 81;
  width: 8px;
  height: 8px;
  background: rgba(8,15,26,.96);
  border-right: 1px solid rgba(32,183,216,.45);
  border-bottom: 1px solid rgba(32,183,216,.45);
  pointer-events: none;
}
.fp-sec-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.fp-sec-title { font-size: 13px; font-weight: 600; color: var(--ink); }
.fp-sec-badge { background: var(--card2); border: 1px solid var(--border2); border-radius: 10px; padding: 1px 8px; font-size: 11px; color: var(--ink2); }
.fp-sec-badge.active { background: var(--blue-dim); border-color: rgba(32,183,216,.3); color: var(--blue); }
.fp-sec-actions { margin-left: auto; display: flex; gap: 6px; }
.fp-plan-list { margin-bottom: 16px; }
.fp-plan-card { border-radius: 10px; border: 1px solid var(--border); background: var(--card); padding: 10px 14px; margin: 4px 0 8px; position: relative; overflow: hidden; transition: all .2s; cursor: pointer; animation: fpFadeIn .3s ease both; }
.fp-plan-card:hover { border-color: var(--border2); background: var(--card2); transform: translateX(2px); }
.fp-plan-card.selected { border-color: rgba(32,183,216,.4); background: rgba(32,183,216,.05); }
.fp-plan-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; border-radius: 10px 0 0 10px; }
.fp-plan-card.status-pending::before { background: var(--ink3); }
.fp-plan-card.status-active::before { background: var(--blue); }
.fp-plan-card.status-done::before { background: var(--green); }
.fp-plan-card.status-miss::before { background: var(--red); }
.fp-pc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.fp-pc-time { font-size: 11px; color: var(--ink2); font-weight: 500; }
.fp-pc-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--ink3); }
.fp-pc-school { font-size: 13px; font-weight: 600; flex: 1; color: var(--ink); }
.fp-status-badge { padding: 2px 8px; border-radius: 6px; font-size: 10px; font-weight: 500; flex-shrink: 0; }
.fp-status-badge.pending { background: var(--card3); color: var(--ink2); }
.fp-status-badge.active { background: var(--blue-dim); color: var(--blue); border: 1px solid rgba(32,183,216,.25); }
.fp-status-badge.done { background: var(--green-dim); color: var(--green); }
.fp-status-badge.miss { background: var(--red-dim); color: var(--red); }
.fp-pc-meta { display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--ink2); margin-bottom: 8px; flex-wrap: wrap; }
.fp-pc-body { display: flex; align-items: center; gap: 12px; }
.fp-pc-targets { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }
.fp-grade-chip { padding: 2px 7px; border-radius: 5px; font-size: 10px; background: var(--card2); color: var(--ink2); border: 1px solid var(--border2); }
.fp-grade-chip.hot { background: var(--yellow-dim); color: var(--yellow); border-color: rgba(226,170,56,.2); }
.fp-pc-crew { display: flex; align-items: center; gap: 3px; }
.fp-avatar { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--card); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; flex-shrink: 0; color: #fff; }
.fp-avatar.a1 { background: #3b82f6; }
.fp-avatar.a2 { background: #8b5cf6; }
.fp-avatar.a3 { background: #ec4899; }
.fp-avatar.a4 { background: #10b981; }
.fp-avatar.a5 { background: #f59e0b; }
.fp-more { font-size: 10px; color: var(--ink2); margin-left: 2px; }
.fp-plan-note { margin-top: 8px; padding: 7px 9px; border-radius: 7px; background: var(--card2); color: var(--ink2); font-size: 11px; line-height: 1.45; }
.fp-plan-results { display: flex; gap: 14px; color: var(--ink2); font-size: 11px; margin-top: 8px; }
.fp-plan-results b { color: var(--ink); font-size: 14px; }
.fp-pc-actions { display: flex; gap: 6px; margin-top: 8px; }
.fp-action-btn { flex: 1; padding: 5px 0; border-radius: 7px; border: 1px solid var(--border2); background: transparent; color: var(--ink2); font-size: 11px; transition: all .15s; }
.fp-action-btn:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-dim); }
.fp-action-btn.primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.fp-action-btn.primary:hover { opacity: .85; }
.fp-with-tip { position: relative; }
.fp-tip { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: rgba(10,15,25,.95); border: 1px solid var(--border2); border-radius: 6px; padding: 4px 8px; font-size: 10px; color: var(--ink); white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s; z-index: 50; }
.fp-with-tip:hover .fp-tip { opacity: 1; }
.fp-empty-state { background: var(--card); border: 1px dashed rgba(255,255,255,0.1); border-radius: 12px; padding: 32px; text-align: center; margin: 8px 0 16px; }
.fp-es-icon { font-size: 32px; margin-bottom: 10px; opacity: .5; }
.fp-es-title { font-size: 14px; font-weight: 500; color: var(--ink2); margin-bottom: 6px; }
.fp-es-sub { font-size: 12px; color: var(--ink3); margin-bottom: 14px; }
.fp-hist-item { border-radius: 10px; border: 1px solid var(--border); background: var(--card); padding: 12px 14px; margin-bottom: 8px; cursor: pointer; transition: all .15s; animation: fpFadeIn .3s ease both; }
.fp-hist-item:hover { border-color: var(--border2); background: var(--card2); transform: translateX(2px); }
.fp-hist-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.fp-hist-date { font-size: 11px; color: var(--ink2); }
.fp-hist-school { font-size: 13px; font-weight: 600; color: var(--ink); }
.fp-hist-stats { display: flex; gap: 14px; margin-left: auto; }
.fp-hist-stat { text-align: center; }
.fp-hs-val { font-size: 16px; font-weight: 700; }
.fp-hs-label { font-size: 10px; color: var(--ink2); margin-top: 1px; }
.fp-hist-stat.green .fp-hs-val { color: var(--green); }
.fp-hist-stat.yellow .fp-hs-val { color: var(--yellow); }
.fp-hist-arrow { color: var(--ink2); transition: transform .18s ease; }
.fp-hist-item.open .fp-hist-arrow { transform: rotate(180deg); }
.fp-hist-expand { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); display: none; }
.fp-hist-expand.open { display: block; }
.fp-hist-expand-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.fp-heg-item { background: var(--card2); border-radius: 7px; padding: 7px 10px; }
.fp-heg-label { font-size: 10px; color: var(--ink2); }
.fp-heg-val { font-size: 12px; font-weight: 500; margin-top: 2px; color: var(--ink); }
.fp-hist-subtitle { margin: 12px 0 8px; font-size: 11px; color: var(--ink2); font-weight: 700; }
.fp-hist-photo-strip { display: flex; gap: 8px; flex-wrap: wrap; }
.fp-hist-photo-strip img { width: 96px; height: 68px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); cursor: pointer; transition: all .15s; background: var(--bg); }
.fp-hist-photo-strip img:hover { border-color: var(--blue); transform: translateY(-1px); }
.fp-hist-photo-strip button { min-width: 42px; border-radius: 8px; border: 1px solid var(--border2); background: var(--card2); color: var(--blue); cursor: pointer; }
.fp-hist-photo-empty { padding: 12px; border: 1px dashed var(--border2); border-radius: 8px; color: var(--ink3); font-size: 12px; text-align: center; }
.fp-hist-grade-bars { display: grid; gap: 8px; }
.fp-hist-grade-row { display: grid; grid-template-columns: 60px 1fr 36px; gap: 10px; align-items: center; font-size: 12px; color: var(--ink2); }
.fp-hist-grade-row div { height: 7px; background: var(--bg); border-radius: 99px; overflow: hidden; }
.fp-hist-grade-row i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--blue), var(--green), var(--yellow)); }
.fp-hist-grade-row b { color: var(--ink); text-align: right; }
.fp-hist-grade-empty { display: flex; gap: 6px; flex-wrap: wrap; color: var(--ink2); font-size: 12px; }
.fp-hist-note { margin-top: 10px; color: var(--ink2); font-size: 12px; line-height: 1.6; }
.fp-hist-summary { margin-top: 12px; padding: 10px 12px; border: 1px solid rgba(32,183,216,.24); border-radius: 10px; background: rgba(32,183,216,.08); color: var(--ink2); font-size: 12px; }
.fp-hist-summary b { color: var(--green); font-size: 15px; }
.fp-rp-section { padding: 14px; border-bottom: 1px solid var(--border); overflow: visible; }
.fp-rp-title { font-size: 11px; font-weight: 600; color: var(--ink2); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px; }
.fp-cal-header { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-bottom: 4px; width: 100%; max-width: 100%; box-sizing: border-box; }
.fp-cal-header span { text-align: center; font-size: 9px; color: var(--ink3); }
.fp-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: 30px; gap: 4px; position: relative; width: 100%; max-width: 100%; box-sizing: border-box; }
.fp-cal-day { width: 100%; min-width: 0; min-height: 0; height: 30px; padding: 0; margin: 0; line-height: 1; aspect-ratio: auto; border: 0; border-radius: 5px; display: flex; align-items: center; justify-content: center; font-size: 10px; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; position: relative; color: var(--ink3); }
.fp-cal-day.empty { min-height: 0; height: 0; padding: 0; align-self: end; opacity: 0; pointer-events: none; }
.fp-cal-day.no-plan { background: var(--card2); color: var(--ink3); }
.fp-cal-day.has-plan-1 { background: rgba(32,183,216,0.2); color: var(--blue); }
.fp-cal-day.has-plan-2 { background: rgba(32,183,216,0.45); color: #fff; }
.fp-cal-day.has-plan-3 { background: var(--blue); color: #fff; }
.fp-cal-day.today { box-shadow: 0 0 0 1.5px var(--blue); }
.fp-cal-day.selected { box-shadow: 0 0 0 1.5px var(--yellow); color: var(--yellow); }
.fp-cal-day:hover { transform: translateY(-1px) scale(1.03); z-index: 2; }
.fp-cal-day[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: -30px;
  transform: translateX(-50%) scale(.87);
  z-index: 40;
  white-space: nowrap;
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(12,18,30,.96);
  color: #fff;
  font-size: 12px;
  line-height: 1.15;
  box-shadow: 0 8px 20px rgba(0,0,0,.34);
  pointer-events: none;
}
.fp-cal-day[data-tip]:hover::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  z-index: 41;
  border: 5px solid transparent;
  border-bottom-color: rgba(255,255,255,.72);
  pointer-events: none;
}
.fp-cal-legend { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.fp-cal-legend span { font-size: 9px; color: var(--ink3); }
.fp-dot { width: 8px; height: 8px; border-radius: 2px; }
.fp-week-bars { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; align-items: flex-end; height: 82px; margin-bottom: 4px; }
.fp-wb-col { display: flex; flex-direction: column; align-items: center; gap: 2px; height: 100%; justify-content: flex-end; }
.fp-wb-bar { width: 100%; border-radius: 3px 3px 0 0; min-height: 3px; transition: height .4s; background: var(--card3); }
.fp-wb-col.today .fp-wb-bar { background: var(--blue); }
.fp-wb-label, .fp-wb-val { font-size: 9px; color: var(--ink3); }
.fp-wb-col.today .fp-wb-label { color: var(--blue); }
.fp-rank-list { display: flex; flex-direction: column; gap: 6px; }
.fp-rank-row { display: flex; align-items: center; gap: 9px; padding: 8px 9px; border: 1px solid transparent; border-radius: 9px; background: rgba(255,255,255,.025); transition: background .16s, border-color .16s, transform .16s; }
.fp-rank-row:hover { background: rgba(32,183,216,.08); border-color: rgba(32,183,216,.2); transform: translateX(2px); }
.fp-rank-row.active { border-color: rgba(32,183,216,.38); background: rgba(32,183,216,.1); }
.fp-rank-no { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 10px; font-weight: 800; color: #fff; background: rgba(148,163,184,.22); }
.fp-rank-row:nth-child(1) .fp-rank-no { background: var(--yellow); color: #111827; }
.fp-rank-row:nth-child(2) .fp-rank-no { background: #64748b; }
.fp-rank-row:nth-child(3) .fp-rank-no { background: #a16207; }
.fp-rank-main { min-width: 0; flex: 1; }
.fp-rank-main b { display: block; color: var(--ink); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-rank-main span { display: block; margin-top: 2px; color: var(--ink3); font-size: 10px; }
.fp-rank-score { text-align: right; flex-shrink: 0; }
.fp-rank-score b { display: block; color: var(--green); font-size: 15px; line-height: 1; }
.fp-rank-score span { display: block; margin-top: 2px; color: var(--ink3); font-size: 10px; }
.fp-suggest-item { background: var(--card2); border-radius: 8px; padding: 9px 11px; margin-bottom: 6px; display: flex; gap: 8px; }
.fp-suggest-icon { font-size: 14px; flex-shrink: 0; margin-top: 1px; }
.fp-s-title { font-size: 12px; font-weight: 500; color: var(--ink); }
.fp-s-desc { font-size: 11px; color: var(--ink2); margin-top: 2px; line-height: 1.4; }
.fp-s-action { font-size: 11px; color: var(--blue); margin-top: 4px; cursor: pointer; }
.fp-team-member { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--border); transition: background .16s, padding .16s, transform .16s; }
.fp-team-member:hover { background: rgba(32,183,216,.08); border-radius: 8px; padding-left: 6px; padding-right: 6px; transform: translateX(2px); }
.fp-team-member:last-child { border-bottom: none; }
.fp-tm-info { flex: 1; min-width: 0; }
.fp-tm-name { font-size: 12px; font-weight: 500; color: var(--ink); }
.fp-tm-role { font-size: 10px; color: var(--ink2); }
.fp-tm-tasks { font-size: 11px; color: var(--ink2); }
.fp-tm-tasks b { color: var(--blue); font-weight: 600; }
.fp-tm-status { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.fp-tm-status.busy { background: var(--blue); box-shadow: 0 0 6px var(--blue); }
.fp-tm-status.free { background: var(--green); }
.fp-tm-status.leader, .fp-tm-status.active { background: #20b7d8; box-shadow: 0 0 8px rgba(32,183,216,.85); }
.fp-tm-status.ready { background: #35c980; box-shadow: 0 0 6px rgba(53,201,128,.45); }
.fp-tm-status.done { background: #35c980; }
.fp-tm-status.muted { background: #4b5563; box-shadow: none; }
.fp-empty-mini { color: var(--ink3); font-size: 12px; padding: 10px 0; }
.fp-kpi-card:hover { border-color: var(--border2); background: var(--card2); transform: translateY(-1px); }
.fp-action-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(32,183,216,.22); }
.fp-pc-progress { margin-top: 8px; background: var(--bg); border-radius: 4px; height: 4px; overflow: hidden; }
.fp-pc-progress-fill { height: 4px; border-radius: 4px; background: var(--blue); transition: width .6s; }
.fp-pc-progress-meta { display: flex; justify-content: space-between; font-size: 10px; color: var(--ink2); margin-top: 3px; }
.fp-suggest-item:hover { background: rgba(32,183,216,.08); }
.fp-todo-center .fp-rp-title { display: flex; align-items: center; justify-content: space-between; }
.fp-todo-center .fp-rp-title span { color: var(--blue); font-size: 11px; border: 1px solid rgba(32,183,216,.28); border-radius: 999px; padding: 2px 7px; background: rgba(32,183,216,.08); }
.fp-todo-counts { display: flex; gap: 6px; margin-bottom: 9px; }
.fp-todo-counts span { border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 800; background: rgba(255,255,255,.05); }
.fp-todo-counts .danger { color: #ff7b8b; border: 1px solid rgba(255,91,113,.22); }
.fp-todo-counts .cyan { color: var(--blue); border: 1px solid rgba(32,183,216,.22); }
.fp-todo-counts .amber { color: var(--yellow); border: 1px solid rgba(245,177,53,.24); }
.fp-todo-list { display: grid; gap: 8px; }
.fp-todo-card { display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: center; border: 1px solid var(--border); border-radius: 10px; padding: 9px 10px; background: rgba(255,255,255,.035); cursor: pointer; transition: all .15s; }
.fp-todo-card:hover { border-color: var(--blue); background: rgba(32,183,216,.08); transform: translateY(-1px); }
.fp-todo-card.overdue { border-left: 3px solid var(--red); }
.fp-todo-card.soon { border-left: 3px solid var(--blue); }
.fp-todo-card.reminder { border-left: 3px solid var(--yellow); }
.fp-todo-icon { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.06); font-size: 13px; }
.fp-todo-main { min-width: 0; }
.fp-todo-title { display: flex; gap: 6px; align-items: center; min-width: 0; }
.fp-todo-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 12px; }
.fp-todo-title span { flex-shrink: 0; color: var(--ink2); font-size: 10px; }
.fp-todo-main p { margin: 3px 0 0; color: var(--ink2); font-size: 10px; line-height: 1.35; }
.fp-todo-main em { display: block; margin-top: 3px; color: #ffd98a; font-style: normal; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-todo-actions { display: flex; flex-direction: column; gap: 4px; }
.fp-todo-actions button { border: 1px solid var(--border2); background: transparent; color: var(--ink2); border-radius: 7px; padding: 4px 8px; font-size: 10px; cursor: pointer; transition: all .15s; }
.fp-todo-actions button:hover { border-color: var(--blue); color: var(--blue); }
.fp-todo-actions button.primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.field-result-modal { margin: -2px -4px -4px; overflow: hidden; }
.modal-card:has(.field-result-modal) { width: min(700px, calc(100vw - 52px)); max-height: calc(100vh - 34px); padding: 16px 18px 14px; overflow-x: hidden; box-sizing: border-box; }
.field-result-modal * { box-sizing: border-box; }
.field-result-head { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-bottom: 10px; }
.field-result-head h2 { margin: 0; font-size: 17px; font-weight: 900; }
.field-result-head span { margin-left: auto; color: var(--blue); font-size: 12px; font-weight: 800; padding-right: 36px; white-space: nowrap; }
.field-result-section-title { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .4px; margin: 10px 0 6px; }
.field-result-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.field-result-stat { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.04); border-radius: 10px; padding: 8px 10px; text-align: center; display: block; min-width: 0; }
.field-result-stat:hover { border-color: var(--blue); background: rgba(32,183,216,.08); }
.rs-label { color: var(--muted); font-size: 11px; font-weight: 800; }
.rs-input { width: 100%; height: 30px; line-height: 30px; border: 0; background: transparent; text-align: center; outline: none; font-size: 22px; font-weight: 900; margin-top: 2px; padding: 0; }
.rs-input::-webkit-outer-spin-button,
.rs-input::-webkit-inner-spin-button,
.field-result-grade input::-webkit-outer-spin-button,
.field-result-grade input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rs-input[type=number],
.field-result-grade input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.rs-input.green { color: var(--green); }
.rs-input.yellow { color: var(--yellow); }
.rs-help { color: var(--muted); opacity: .75; font-size: 10px; margin-top: 0; }
.field-result-grade-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.field-result-grade { background: rgba(255,255,255,.04); border-radius: 9px; padding: 7px 8px; text-align: center; min-width: 0; }
.field-result-grade div { color: var(--muted); font-size: 11px; font-weight: 800; margin-bottom: 3px; }
.field-result-grade input { width: 100%; height: 28px; border: 0; background: transparent; outline: none; text-align: center; color: var(--ink); font-size: 18px; font-weight: 900; padding: 0; }
.field-result-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; }
.field-result-form-grid label { color: var(--muted); font-size: 11px; font-weight: 800; min-width: 0; }
.field-result-form-grid .wide { grid-column: 1 / -1; }
.field-result-form-grid input, .field-result-form-grid textarea { width: 100%; margin-top: 4px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.03); color: var(--ink); padding: 8px 10px; outline: none; font-size: 13px; }
.field-result-form-grid input { height: 38px; }
.field-result-form-grid textarea { min-height: 48px; max-height: 62px; resize: vertical; }
.field-result-form-grid input:focus, .field-result-form-grid textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(32,183,216,.12); }
.field-intent-list { display: grid; gap: 6px; }
.field-intent-row { display: grid; grid-template-columns: minmax(0, 1fr) 130px 96px 66px; gap: 8px; align-items: center; background: rgba(255,255,255,.04); border-radius: 10px; padding: 7px 8px; min-width: 0; }
.field-intent-row:hover { background: rgba(32,183,216,.08); }
.field-intent-row input, .field-intent-row select { min-width: 0; height: 30px; border: 0; background: transparent; color: var(--ink); outline: none; font-size: 12px; }
.field-intent-row button { border: 1px solid rgba(32,183,216,.3); background: rgba(32,183,216,.12); color: var(--blue); border-radius: 7px; padding: 5px 8px; cursor: pointer; font-size: 12px; }
.field-intent-row button:hover { background: var(--blue); color: #fff; }
.field-result-tip { color: var(--muted); font-size: 10px; margin-top: 6px; }
.field-result-foot { display: flex; justify-content: flex-end; gap: 8px; margin: 10px -18px -14px; padding: 10px 18px 0; border-top: 1px solid var(--line); }
.fp-plan-modal { margin: -2px -4px -4px; }
.modal-card:has(.fp-plan-modal) { width: min(760px, 96vw); padding: 22px; }
.fp-plan-modal-compact .fp-plan-field { margin-bottom: 10px; }
.fp-plan-modal-compact .fp-plan-modal-head { padding-bottom: 14px; margin-bottom: 14px; }
.fp-plan-modal-compact .fp-plan-field input,
.fp-plan-modal-compact .fp-plan-field select,
.fp-plan-modal-compact .fp-plan-field textarea { padding: 10px 12px; }
.fp-plan-modal-compact .fp-modal-chip,
.fp-plan-modal-compact .fp-member-chip { min-height: 34px; padding-top: 7px; padding-bottom: 7px; }
.fp-target-link { margin: -2px 0 10px; padding: 8px 10px; border: 1px solid rgba(32,183,216,.22); border-radius: 10px; background: rgba(32,183,216,.07); color: var(--muted); font-size: 12px; line-height: 1.45; }
.fp-plan-modal-head { border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 18px; }
.fp-plan-modal-head h2 { margin: 0; font-size: 18px; font-weight: 900; }
.fp-plan-field { margin-bottom: 14px; }
.fp-plan-field label { display: block; color: var(--muted); font-size: 12px; font-weight: 800; margin-bottom: 8px; }
.fp-plan-field .req { color: var(--red); }
.fp-plan-field input,
.fp-plan-field select,
.fp-plan-field textarea,
.fp-plan-two input,
.fp-plan-two select { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.035); color: var(--ink); padding: 12px 14px; outline: none; font-weight: 700; }
.fp-plan-field input:focus,
.fp-plan-field select:focus,
.fp-plan-field textarea:focus,
.fp-plan-two input:focus,
.fp-plan-two select:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(32,183,216,.14); }
.fp-plan-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.fp-modal-chip-row { display: flex; gap: 8px; }
.fp-modal-chip-row.wrap { flex-wrap: wrap; }
.fp-modal-chip,
.fp-member-chip { min-height: 36px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(255,255,255,.035); color: var(--muted); padding: 8px 16px; font-size: 13px; font-weight: 800; cursor: pointer; transition: transform .16s ease, border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease; }
.fp-modal-chip { flex: 1; }
.fp-modal-chip-row.wrap .fp-modal-chip { flex: 0 0 auto; }
.fp-modal-chip:hover,
.fp-member-chip:hover { transform: translateY(-1px); border-color: rgba(32,183,216,.7); background: rgba(32,183,216,.1); color: var(--ink); box-shadow: 0 8px 22px rgba(0,0,0,.18); }
.fp-modal-chip.active { color: var(--blue); border-color: var(--blue); background: rgba(32,183,216,.13); box-shadow: inset 0 0 0 1px rgba(32,183,216,.12); }
.fp-member-chip { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 6px; }
.fp-member-chip span { width: 24px; height: 24px; border-radius: 999px; display: inline-grid; place-items: center; background: rgba(255,255,255,.08); color: var(--ink); font-size: 12px; }
.fp-member-chip.active { border-color: var(--purple); color: var(--ink); background: rgba(139,124,246,.15); }
.fp-member-chip.active span { background: linear-gradient(135deg, var(--blue), var(--purple)); }
.fp-plan-modal-foot { display: flex; justify-content: flex-end; gap: 10px; margin: 20px -22px -22px; padding: 16px 22px 0; border-top: 1px solid var(--line); }
@media (max-width: 680px) {
  .field-result-stat-grid, .field-result-form-grid { grid-template-columns: 1fr; }
  .field-result-grade-grid { grid-template-columns: repeat(2, 1fr); }
  .field-intent-row { grid-template-columns: 1fr; }
  .fp-plan-two { grid-template-columns: 1fr; }
  .fp-modal-chip { flex: 0 0 auto; }
}
@keyframes fpFadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@media (max-width: 1100px) {
  .fp-page { margin: -16px; }
  .fp-body-wrap { display: block; overflow-y: auto; }
  .fp-main-col { overflow: visible; }
  .fp-right-col { width: auto; border-left: 0; border-top: 1px solid var(--border); }
  .fp-kpi-strip { grid-template-columns: 1fr; }
  .fp-topbar { flex-wrap: wrap; height: auto; padding: 10px 14px; }
  .fp-date-nav { margin-left: 0; }
  .fp-topbar-actions { width: 100%; margin-left: 0; }
}
.fp-reminder-line { margin-top: 10px; padding: 9px 12px; border: 1px solid rgba(245,177,53,.32); border-radius: 10px; background: rgba(245,177,53,.1); color: #ffd98a; font-size: 13px; }
.fp-contact-card { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin: 14px 0; padding: 16px; border: 1px solid rgba(32,183,216,.26); border-radius: 14px; background: rgba(11,31,45,.78); }
.fp-contact-main { display: flex; align-items: center; gap: 12px; }
.fp-contact-main b, .fp-contact-person b { display: block; color: var(--ink); }
.fp-contact-main span, .fp-contact-person span { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; }
.fp-contact-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.fp-contact-list { display: grid; gap: 10px; }
.fp-contact-person { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.035); transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.fp-contact-person:hover { border-color: rgba(32,183,216,.45); background: rgba(32,183,216,.08); transform: translateY(-1px); }
.fp-no-phone { color: #f5b135 !important; font-size: 12px; }
.fp-timeline-list { position: relative; padding-left: 18px; }
.fp-timeline-list::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 1px; background: linear-gradient(180deg, rgba(32,183,216,.7), rgba(32,183,216,.08)); }
.fp-timeline-list .fp-plan-card { position: relative; }
.fp-timeline-list .fp-plan-card::before { content: ""; position: absolute; left: -19px; top: 20px; width: 9px; height: 9px; border-radius: 999px; background: var(--blue); box-shadow: 0 0 0 4px rgba(32,183,216,.12); }
.fp-history-modal { max-height: 68vh; overflow: auto; display: grid; gap: 10px; padding-right: 4px; }
.fp-history-pager { display: flex; align-items: center; justify-content: center; gap: 12px; padding-top: 12px; color: var(--ink2); font-size: 13px; }
.fp-history-pager button:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 680px) {
  .fp-contact-card { align-items: flex-start; flex-direction: column; }
}

/* Trial review replica: copied visual language from trial_review_2.html */
.modal-card:has(.trial-review-ui) { width: min(1180px, calc(100vw - 28px)); height: min(760px, calc(100vh - 28px)); padding: 0; overflow: hidden; background: #161b27; border-color: rgba(255,255,255,.13); }
.modal-card:has(.trial-review-ui) > .modal-close { top: 10px; right: 12px; width: 32px; height: 32px; border-color: rgba(255,255,255,.18); background: rgba(15,23,42,.72); color: rgba(255,255,255,.72); z-index: 80; }
.modal-card:has(.trial-review-ui) > .modal-close:hover { background: rgba(255,255,255,.12); color: #fff; }
.trial-review-ui { --trv-blue:#20b7d8; --trv-yellow:#e2aa38; --trv-purple:#8b7cf6; --trv-green:#36c275; --trv-red:#e05252; --trv-card:#1e2433; --trv-card2:#242b3d; --trv-card3:#2a3347; --trv-border:rgba(255,255,255,.07); --trv-border2:rgba(255,255,255,.13); --trv-ink:rgba(255,255,255,.92); --trv-ink2:rgba(255,255,255,.45); --trv-ink3:rgba(255,255,255,.2); height: 100%; color: var(--trv-ink); font-family: -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; font-size: 14px; display: flex; flex-direction: column; background: #161b27; overflow: hidden; }
.trial-review-page-embed { min-height: calc(100vh - 36px); border-radius: 0; margin: -22px -24px; }
.trial-review-page-embed.trial-review-after-head { min-height: calc(100vh - 150px); margin: 0 -24px -22px; border-top: 1px solid rgba(255,255,255,.08); }
.trial-review-page-embed .trv-pillars { border-top: 0; }
.trial-review-ui * { box-sizing: border-box; }
.trv-header { height: 50px; flex-shrink: 0; display: flex; align-items: center; gap: 12px; padding: 0 20px; background: var(--trv-card); border-bottom: 1px solid var(--trv-border2); }
.trv-back { height: 28px; padding: 0 10px; border: 0; border-radius: 6px; background: var(--trv-card3); color: var(--trv-ink2); cursor: pointer; font-size: 12px; }
.trv-back:hover, .trv-head-actions button:hover, .trv-nav-ai:hover { background: rgba(255,255,255,.06); }
.trv-title { font-size: 14px; font-weight: 700; }
.trv-meta { margin-top: 1px; font-size: 11px; color: var(--trv-ink3); }
.trv-header-right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.trv-mini-pillars { display: flex; gap: 6px; }
.trv-mini-pillars span, .trv-tag { font-size: 11px; border-radius: 12px; padding: 3px 9px; border: 1px solid rgba(255,255,255,.13); background: var(--trv-card3); color: var(--trv-ink2); }
.trv-tag.trv-stat-ok { border-color: rgba(54,194,117,.25); color: var(--trv-green); background: rgba(54,194,117,.08); }
.trv-tag.trv-stat-warn { border-color: rgba(226,170,56,.25); color: var(--trv-yellow); background: rgba(226,170,56,.08); }
.trv-tag.trv-stat-bad { border-color: rgba(224,82,82,.25); color: var(--trv-red); background: rgba(224,82,82,.08); }
.trv-mini-pillars .fail { background: rgba(224,82,82,.1); border-color: rgba(224,82,82,.25); color: var(--trv-red); }
.trv-mini-pillars .warn { background: rgba(226,170,56,.1); border-color: rgba(226,170,56,.25); color: var(--trv-yellow); }
.trv-mini-pillars .ok { background: rgba(54,194,117,.1); border-color: rgba(54,194,117,.25); color: var(--trv-green); }
.trv-mini-pillars .gray { background: var(--trv-card3); border-color: var(--trv-border2); color: var(--trv-ink2); }
.trv-pillars { flex-shrink: 0; background: var(--trv-card); border-bottom: 2px solid var(--trv-border2); transition: all .3s ease; }
.trv-pillars.collapsed .trv-pillars-body, .trv-pillars.collapsed .trv-pillars-foot { display: none; }
.trv-pillars-head { display: flex; align-items: center; gap: 10px; padding: 10px 20px 8px; }
.trv-head-icon { font-size: 18px; }
.trv-pillars-head small { display: block; font-size: 11px; color: var(--trv-ink3); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.trv-pillars-head b { display: block; font-size: 13px; font-weight: 700; }
.trv-head-actions { margin-left: auto; display: flex; gap: 7px; }
.trv-head-actions button { height: 26px; padding: 5px 12px; border-radius: 7px; border: 1px solid var(--trv-border2); background: transparent; color: var(--trv-ink2); font-size: 12px; cursor: pointer; transition: all .15s; }
.trv-head-actions button.active { background: rgba(139,124,246,.15); border-color: rgba(139,124,246,.35); color: var(--trv-purple); }
.trv-pillars-body { padding: 0 20px 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.trv-pillar { border-radius: 12px; padding: 14px; border: 1px solid; overflow: hidden; }
.trv-pillar.child { background: rgba(32,183,216,.06); border-color: rgba(32,183,216,.25); }
.trv-pillar.trust { background: rgba(139,124,246,.06); border-color: rgba(139,124,246,.25); }
.trv-pillar.value { background: rgba(54,194,117,.06); border-color: rgba(54,194,117,.25); }
.trv-pillar-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.trv-pillar-top i { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-size: 20px; font-style: normal; }
.trv-pillar.child .trv-pillar-top i { background: rgba(32,183,216,.15); }
.trv-pillar.trust .trv-pillar-top i { background: rgba(139,124,246,.15); }
.trv-pillar.value .trv-pillar-top i { background: rgba(54,194,117,.15); }
.trv-pillar-top b { font-size: 16px; font-weight: 800; }
.trv-pillar.child .trv-pillar-top b { color: var(--trv-blue); }
.trv-pillar.trust .trv-pillar-top b { color: var(--trv-purple); }
.trv-pillar.value .trv-pillar-top b { color: var(--trv-green); }
.trv-core { padding: 8px 10px; border-left: 2px solid; border-radius: 0 7px 7px 0; background: rgba(255,255,255,.04); color: var(--trv-ink2); font-size: 12px; line-height: 1.6; margin-bottom: 10px; }
.trv-pillar.child .trv-core { border-color: rgba(32,183,216,.4); }
.trv-pillar.trust .trv-core { border-color: rgba(139,124,246,.4); }
.trv-pillar.value .trv-core { border-color: rgba(54,194,117,.4); }
.trv-signals h5 { margin: 8px 0 5px; font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.trv-signals h5.ok { color: var(--trv-green); }
.trv-signals h5.bad { color: var(--trv-red); }
.trv-signals p { margin: 0 0 3px; font-size: 11px; color: var(--trv-ink2); line-height: 1.45; }
.trv-signals p::before { content: "·"; opacity: .5; margin-right: 6px; }
.trv-quiz { display: none; }
.trv-answer { display: block; }
.trv-pillars-body.quiz-mode .trv-answer { display: none; }
.trv-pillars-body.quiz-mode .trv-pillar.revealed .trv-answer { display: block; margin-top: 9px; animation: trvAnswerIn .18s ease-out; }
.trv-pillars-body.quiz-mode .trv-pillar.revealed .trv-quiz button { display: none; }
.trv-pillars-body.quiz-mode .trv-quiz { display: flex; flex-direction: column; gap: 8px; }
.trv-quiz p { color: var(--trv-ink2); font-size: 12px; margin: 0; line-height: 1.5; }
.trv-quiz textarea { width: 100%; height: 68px; resize: none; border: 1px solid var(--trv-border2); border-radius: 7px; padding: 8px 10px; background: rgba(255,255,255,.04); color: var(--trv-ink); font: inherit; font-size: 12px; line-height: 1.5; }
.trv-quiz button { align-self: flex-start; border-radius: 6px; padding: 5px 11px; border: 1px solid rgba(139,124,246,.3); background: rgba(139,124,246,.15); color: var(--trv-purple); cursor: pointer; font-size: 12px; }
.trv-quiz button:hover { background: rgba(139,124,246,.24); border-color: rgba(139,124,246,.48); }
@keyframes trvAnswerIn { from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:none} }
.trv-pillars-foot { padding: 0 20px 14px; display: flex; justify-content: flex-end; }
.trv-pillars-foot button { border: 0; border-radius: 8px; padding: 8px 20px; color: #fff; font-size: 13px; font-weight: 600; background: linear-gradient(135deg,var(--trv-blue),#0891b2); box-shadow: 0 3px 12px rgba(32,183,216,.35); cursor: pointer; }
.trv-main { min-height: 0; flex: 1; display: flex; overflow: hidden; }
.trv-scroll-body { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.trv-scroll-body .trv-nav { flex-shrink: 0; }
.trv-scroll-body .trv-content { flex: 0 0 auto; min-height: auto; overflow: visible; }
.trv-nav { width: auto; flex-shrink: 0; padding: 10px 16px 12px; overflow: hidden; background: var(--trv-card); border-right: 0; border-bottom: 1px solid var(--trv-border); }
.trv-nav-label { padding: 0 0 8px; font-size: 10px; color: var(--trv-ink3); letter-spacing: .1em; text-transform: uppercase; }
.trv-flow-scroll { display: flex; gap: 8px; align-items: stretch; overflow-x: auto; overflow-y: hidden; padding-bottom: 4px; scrollbar-width: none; -ms-overflow-style: none; }
.trv-flow-scroll::-webkit-scrollbar { display: none; }
.trv-step-item { width: 156px; min-width: 156px; display: flex; align-items: center; gap: 8px; padding: 9px 10px; border: 1px solid var(--trv-border); border-top: 3px solid transparent; border-left: 1px solid var(--trv-border); border-radius: 10px; background: rgba(255,255,255,.025); color: var(--trv-ink); cursor: pointer; text-align: left; transition: transform .15s,border-color .15s,background .15s,box-shadow .15s; }
.trv-step-item:hover { transform: translateY(-1px); background: rgba(255,255,255,.045); border-color: rgba(32,183,216,.25); }
.trv-step-item.active { border-top-color: var(--trv-blue); background: rgba(32,183,216,.08); box-shadow: 0 0 0 1px rgba(32,183,216,.16) inset; }
.trv-step-item.active.bot { border-top-color: var(--trv-red); background: rgba(224,82,82,.08); box-shadow: 0 0 0 1px rgba(224,82,82,.16) inset; }
.trv-step-num { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; border: 1.5px solid var(--trv-border); background: var(--trv-card3); color: var(--trv-ink3); font-size: 10px; font-weight: 700; }
.trv-step-item.ok .trv-step-num { background: rgba(54,194,117,.12); border-color: rgba(54,194,117,.35); color: var(--trv-green); }
.trv-step-item.warn .trv-step-num { background: rgba(226,170,56,.12); border-color: rgba(226,170,56,.35); color: var(--trv-yellow); }
.trv-step-item.bad .trv-step-num { background: rgba(224,82,82,.12); border-color: rgba(224,82,82,.35); color: var(--trv-red); }
.trv-step-item.pending .trv-step-num { opacity: .45; }
.trv-step-item b { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trv-step-item em { display: flex; flex-wrap: wrap; gap: 3px; font-style: normal; }
.trv-step-item em i { border-radius: 3px; padding: 1px 5px; font-size: 9px; font-style: normal; font-weight: 600; }
.trv-step-item .child { background: rgba(32,183,216,.15); color: var(--trv-blue); }
.trv-step-item .trust { background: rgba(139,124,246,.15); color: var(--trv-purple); }
.trv-step-item .value { background: rgba(54,194,117,.15); color: var(--trv-green); }
.trv-step-item .bot-tag { background: rgba(224,82,82,.15); color: var(--trv-red); font-weight: 700; }
.trv-ai-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--trv-purple); margin-left: auto; }
.trv-nav-div { display: none; }
.trv-nav-ai { display: flex; width: 190px; min-width: 190px; margin: 0; border: 1px solid rgba(139,124,246,.25); border-radius: 10px; padding: 9px 11px; text-align: left; background: linear-gradient(135deg,rgba(139,124,246,.15),rgba(32,183,216,.08)); color: var(--trv-purple); cursor: pointer; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; overflow: hidden; }
.trv-nav-ai.ready { border-color: rgba(54,194,117,.35); background: linear-gradient(135deg,rgba(54,194,117,.18),rgba(32,183,216,.1)); color: var(--trv-green); box-shadow: 0 0 0 1px rgba(54,194,117,.08), 0 10px 24px rgba(54,194,117,.08); }
.trv-nav-ai b { display: block; width: 100%; font-size: 11px; line-height: 1.35; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.trv-nav-ai small { display: block; width: 100%; margin-top: 0; color: var(--trv-ink3); font-size: 10px; line-height: 1.35; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.trv-nav-ai.ready small { color: rgba(183,255,216,.8); }
.trv-content { flex: 1; min-height: 0; padding: 16px 20px 28px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; }
.trv-step-head { display: flex; align-items: flex-start; gap: 12px; }
.trv-step-icon { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; font-size: 22px; flex-shrink: 0; background: var(--trv-card2); border: 1px solid var(--trv-border); }
.trv-step-icon.child { background: rgba(32,183,216,.12); border-color: rgba(32,183,216,.25); }
.trv-step-icon.trust { background: rgba(139,124,246,.12); border-color: rgba(139,124,246,.25); }
.trv-step-icon.value { background: rgba(54,194,117,.12); border-color: rgba(54,194,117,.25); }
.trv-step-icon.multi { background: rgba(226,170,56,.12); border-color: rgba(226,170,56,.25); }
.trv-step-icon.bad { background: rgba(224,82,82,.12); border-color: rgba(224,82,82,.25); }
.trv-step-head h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 18px; font-weight: 800; }
.trv-step-head h3 span { border-radius: 20px; padding: 3px 9px; border: 1px solid rgba(224,82,82,.3); color: var(--trv-red); background: rgba(224,82,82,.12); font-size: 11px; animation: trvPulse 2s infinite; }
@keyframes trvPulse { 0%,100%{box-shadow:0 0 0 0 rgba(224,82,82,0)} 50%{box-shadow:0 0 0 4px rgba(224,82,82,.1)} }
.trv-step-head p { display: flex; gap: 5px; margin: 0 0 5px; }
.trv-step-head p i { border-radius: 5px; padding: 3px 8px; font-size: 11px; font-style: normal; font-weight: 600; }
.trv-step-head p .child { background: rgba(32,183,216,.12); color: var(--trv-blue); border: 1px solid rgba(32,183,216,.2); }
.trv-step-head p .trust { background: rgba(139,124,246,.12); color: var(--trv-purple); border: 1px solid rgba(139,124,246,.2); }
.trv-step-head p .value { background: rgba(54,194,117,.12); color: var(--trv-green); border: 1px solid rgba(54,194,117,.2); }
.trv-step-head small { color: var(--trv-ink2); font-size: 12px; line-height: 1.6; }
.trv-zone { border: 1px solid var(--trv-border); border-radius: 12px; background: rgba(255,255,255,.025); padding: 12px; }
.trv-zone + .trv-zone, .trv-zone + .trv-two-col, .trv-two-col + .trv-zone { margin-top: 12px; }
.trv-zone-title { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--trv-ink2); font-size: 12px; }
.trv-zone-title b { width: 20px; height: 20px; border-radius: 999px; display: grid; place-items: center; background: var(--trv-card3); border: 1px solid var(--trv-border2); color: var(--trv-blue); font-size: 11px; }
.trv-zone-title span { color: var(--trv-ink); font-weight: 800; }
.trv-zone-title em { color: var(--trv-ink3); font-size: 11px; font-style: normal; }
.trv-zone .trv-eval { border: 0; padding: 0; background: transparent; }
.trv-zone .trv-note span { display: none; }
.trv-eval { display: flex; gap: 7px; align-items: center; border-radius: 10px; padding: 9px 13px; border: 1px solid var(--trv-border); background: var(--trv-card); }
.trv-eval span { margin-right: 3px; color: var(--trv-ink3); font-size: 11px; }
.trv-eval button { border: 1px solid var(--trv-border2); border-radius: 16px; padding: 4px 11px; color: var(--trv-ink2); background: transparent; cursor: pointer; }
.trv-eval button.ok { background: rgba(54,194,117,.1); border-color: var(--trv-green); color: var(--trv-green); font-weight: 600; }
.trv-eval button.warn { background: rgba(226,170,56,.1); border-color: var(--trv-yellow); color: var(--trv-yellow); font-weight: 600; }
.trv-eval button.bad { background: rgba(224,82,82,.1); border-color: var(--trv-red); color: var(--trv-red); font-weight: 600; }
.trv-signal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.trv-signal-grid section { padding: 12px; border-radius: 10px; border: 1px solid rgba(54,194,117,.2); background: rgba(54,194,117,.04); }
.trv-signal-grid section.warn { border-color: rgba(224,82,82,.2); background: rgba(224,82,82,.04); }
.trv-signal-grid h4 { margin: 0 0 8px; color: var(--trv-green); font-size: 11px; font-weight: 700; }
.trv-signal-grid .warn h4 { color: var(--trv-red); }
.trv-signal { width: 100%; display: flex; gap: 7px; align-items: flex-start; margin-bottom: 5px; padding: 5px 8px; border-radius: 6px; border: 1px solid transparent; background: transparent; color: var(--trv-ink2); text-align: left; cursor: pointer; font-size: 11px; line-height: 1.5; }
.trv-signal:hover { background: rgba(255,255,255,.03); }
.trv-signal.ok { background: rgba(54,194,117,.08); border-color: rgba(54,194,117,.2); color: var(--trv-ink); }
.trv-signal.bad { background: rgba(224,82,82,.08); border-color: rgba(224,82,82,.2); color: var(--trv-ink); }
.trv-signal i { width: 13px; height: 13px; margin-top: 1px; flex-shrink: 0; border-radius: 50%; border: 1.5px solid var(--trv-border2); display: grid; place-items: center; font-size: 8px; font-style: normal; }
.trv-signal.ok i { background: var(--trv-green); border-color: var(--trv-green); color: #fff; }
.trv-signal.bad i { background: var(--trv-red); border-color: var(--trv-red); color: #fff; }
.trv-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.trv-note span { display: block; margin-bottom: 6px; color: var(--trv-ink3); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.trv-note textarea { width: 100%; height: 108px; resize: none; border-radius: 8px; border: 1px solid var(--trv-border2); background: var(--trv-card2); color: var(--trv-ink); padding: 10px 11px; font: inherit; font-size: 12px; line-height: 1.6; }
.trv-result-zone { border-color: rgba(226,170,56,.2); background: rgba(226,170,56,.035); }
.trv-result-row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.trv-result-row button { border: 1px solid var(--trv-border2); border-radius: 16px; padding: 5px 12px; background: transparent; color: var(--trv-ink2); font: inherit; font-size: 12px; }
.trv-result-row button.active.ok { border-color: var(--trv-green); background: rgba(54,194,117,.1); color: var(--trv-green); font-weight: 800; }
.trv-result-row button.active.warn { border-color: var(--trv-yellow); background: rgba(226,170,56,.1); color: var(--trv-yellow); font-weight: 800; }
.trv-result-row button:disabled { cursor: not-allowed; opacity: .75; }
.trv-result-row span { color: var(--trv-ink2); font-size: 12px; }
.trv-follow-grid { display: grid; grid-template-columns: 180px 220px 1fr; gap: 10px; align-items: stretch; }
.trv-follow-grid label { display: flex; flex-direction: column; gap: 6px; color: var(--trv-ink3); font-size: 11px; }
.trv-follow-grid select,
.trv-follow-grid input,
.trv-follow-grid textarea { width: 100%; min-height: 36px; border-radius: 8px; border: 1px solid var(--trv-border2); background: var(--trv-card2); color: var(--trv-ink); padding: 8px 10px; font: inherit; font-size: 12px; }
.trv-follow-grid textarea { height: 74px; resize: none; line-height: 1.5; }
.trv-follow-grid .wide { min-width: 0; }
.trv-pending, .trv-rec.empty { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 108px; gap: 5px; border-radius: 10px; border: 1px dashed var(--trv-border2); background: var(--trv-card2); color: var(--trv-ink3); text-align: center; }
.trv-pending b, .trv-rec.empty b { font-size: 24px; }
.trv-rec { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 10px; border: 1px solid var(--trv-border); background: var(--trv-card); }
.trv-rec.done { border-color: rgba(139,124,246,.2); }
.trv-rec-top { display: flex; justify-content: space-between; align-items: center; }
.trv-rec-top span { color: var(--trv-ink3); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.trv-rec-top em { border-radius: 10px; padding: 2px 7px; background: var(--trv-card3); color: var(--trv-ink3); font-size: 10px; font-style: normal; }
.trv-rec.recording .trv-rec-top em { background: rgba(224,82,82,.15); color: var(--trv-red); }
.trv-rec.done .trv-rec-top em { background: rgba(139,124,246,.15); color: var(--trv-purple); }
.trv-rec-row { display: flex; align-items: center; gap: 12px; }
.trv-rec-row > button { width: 44px; height: 44px; flex-shrink: 0; border: 0; border-radius: 50%; background: linear-gradient(135deg,var(--trv-blue),#0891b2); box-shadow: 0 3px 10px rgba(32,183,216,.4); cursor: pointer; font-size: 19px; }
.trv-rec.recording .trv-rec-row > button { background: linear-gradient(135deg,var(--trv-red),#b91c1c); animation: trvRec 1.4s infinite; }
.trv-rec.done .trv-rec-row > button { background: linear-gradient(135deg,var(--trv-purple),#6d5acf); }
@keyframes trvRec { 50% { box-shadow: 0 3px 22px rgba(224,82,82,.8),0 0 0 7px rgba(224,82,82,.1); } }
.trv-rec-row > div { flex: 1; min-width: 0; }
.trv-wave { height: 34px; display: flex; align-items: center; gap: 2px; padding: 0 8px; overflow: hidden; border-radius: 6px; background: var(--trv-card2); }
.trv-wave i { width: 3px; border-radius: 2px; background: var(--trv-purple); opacity: .7; }
.trv-wave i.idle { background: var(--trv-border2); }
.trv-wave.active i { animation: trvWave var(--d,.5s) ease-in-out infinite alternate; }
@keyframes trvWave { from{opacity:.3} to{opacity:1} }
.trv-rec-row p { margin: 6px 0 0; display: flex; justify-content: space-between; align-items: center; color: var(--trv-ink2); font-size: 12px; }
.trv-rec-row p span { display: flex; gap: 5px; }
.trv-rec-row p button { border-radius: 5px; border: 1px solid var(--trv-border2); background: transparent; color: var(--trv-ink2); padding: 3px 8px; cursor: pointer; }
.trv-rec small { color: var(--trv-ink3); font-size: 11px; line-height: 1.5; }
.trv-ai-ready { border: 1px dashed var(--trv-border2); border-radius: 10px; background: var(--trv-card2); padding: 12px; }
.trv-ai-ready.ready { border-color: rgba(32,183,216,.35); background: rgba(32,183,216,.06); }
.trv-ai-materials { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.trv-ai-materials span { border-radius: 999px; padding: 3px 8px; border: 1px solid var(--trv-border2); color: var(--trv-ink3); font-size: 11px; }
.trv-ai-materials span.ok { border-color: rgba(54,194,117,.3); color: var(--trv-green); background: rgba(54,194,117,.08); }
.trv-ai-materials span.warn { border-color: rgba(226,170,56,.3); color: var(--trv-yellow); background: rgba(226,170,56,.08); }
.trv-ai-ready p { margin: 0 0 10px; color: var(--trv-ink2); font-size: 12px; line-height: 1.6; }
.trv-ai-ready button[disabled] { opacity: .55; cursor: not-allowed; }
.trv-ai-card { border-radius: 12px; padding: 14px; border: 1px solid rgba(139,124,246,.2); background: linear-gradient(135deg,rgba(139,124,246,.07),rgba(32,183,216,.03)); }
.trv-ai-card header { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.trv-ai-card header i { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: linear-gradient(135deg,var(--trv-purple),var(--trv-blue)); font-style: normal; }
.trv-ai-card header b { display: block; font-size: 13px; }
.trv-ai-card header small, .trv-ai-card h5 { display: block; color: var(--trv-ink3); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.trv-ai-pillars { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.trv-ai-pillars span { border-radius: 5px; padding: 2px 8px; font-size: 11px; font-weight: 700; }
.trv-ai-pillars .child { background: rgba(32,183,216,.15); color: var(--trv-blue); }
.trv-ai-pillars .trust { background: rgba(139,124,246,.15); color: var(--trv-purple); }
.trv-ai-pillars .value { background: rgba(54,194,117,.15); color: var(--trv-green); }
.trv-ai-pillars em { color: var(--trv-red); font-size: 12px; font-style: normal; }
.trv-ai-card p { margin: 4px 0 11px; border-radius: 7px; padding: 9px 11px; font-size: 12px; line-height: 1.7; color: var(--trv-ink2); }
.trv-ai-card .summary { border-left: 2px solid var(--trv-purple); border-radius: 0 6px 6px 0; background: rgba(255,255,255,.03); font-style: italic; max-height: 80px; overflow-y: auto; }
.trv-ai-card mark { border-radius: 3px; padding: 0 2px; background: rgba(224,82,82,.18); color: #ff8f8f; font-style: normal; }
.trv-ai-card .issue { border: 1px solid rgba(224,82,82,.15); background: rgba(224,82,82,.05); color: var(--trv-ink); }
.trv-ai-card .suggest { border: 1px solid rgba(54,194,117,.18); background: rgba(54,194,117,.05); color: var(--trv-ink); }
.trv-ai-card q { display: block; margin-top: 6px; border-radius: 6px; padding: 7px 9px; background: rgba(54,194,117,.1); color: rgba(54,194,117,.9); font-size: 11px; font-style: italic; }
.trv-savebar { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 20px; border-top: 1px solid var(--trv-border2); background: rgba(30,36,51,.96); }
.trv-savebar-status { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--trv-ink2); font-size: 12px; }
.trv-savebar-status em { color: var(--trv-ink3); font-style: normal; }
.trv-savebar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.trv-savebar .btn-small { min-height: 32px; padding: 7px 13px; border-radius: 8px; font-size: 12px; }
.trv-ai-overlay { position: fixed; inset: 0; z-index: 3000; display: none; align-items: flex-end; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); }
.trv-ai-overlay.open { display: flex; }
.trv-drawer { width: 100%; max-height: 68vh; overflow-y: auto; padding: 20px 24px 28px; background: var(--trv-card); border-top: 2px solid rgba(139,124,246,.35); }
.trv-drawer-head { display: flex; align-items: center; margin-bottom: 16px; }
.trv-drawer-head b { font-size: 15px; font-weight: 800; }
.trv-drawer-head button { margin-left: auto; width: 26px; height: 26px; border: 0; border-radius: 6px; background: var(--trv-card3); color: var(--trv-ink2); font-size: 17px; cursor: pointer; }
.trv-diagnose-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin-bottom: 14px; }
.trv-diagnose-grid article { border-radius: 10px; padding: 13px; border: 1px solid rgba(224,82,82,.35); background: rgba(224,82,82,.06); }
.trv-diagnose-grid article.ok { border-color: rgba(54,194,117,.35); background: rgba(54,194,117,.06); }
.trv-diagnose-grid article.warn { border-color: rgba(226,170,56,.4); background: rgba(226,170,56,.06); }
.trv-diagnose-grid article.gray { border-color: rgba(148,163,184,.24); background: rgba(255,255,255,.03); }
.trv-diagnose-grid h4 { display: flex; gap: 7px; align-items: center; margin: 0 0 5px; font-size: 13px; }
.trv-diagnose-grid h4 span { margin-left: auto; border-radius: 10px; padding: 2px 7px; background: rgba(224,82,82,.15); border: 1px solid rgba(224,82,82,.3); color: var(--trv-red); font-size: 11px; }
.trv-diagnose-grid article.ok h4 span { background: rgba(54,194,117,.14); border-color: rgba(54,194,117,.32); color: var(--trv-green); }
.trv-diagnose-grid article.warn h4 span { background: rgba(226,170,56,.14); border-color: rgba(226,170,56,.34); color: var(--trv-yellow); }
.trv-diagnose-grid article.gray h4 span { background: rgba(148,163,184,.12); border-color: rgba(148,163,184,.22); color: var(--trv-ink3); }
.trv-diagnose-grid p { margin: 0 0 7px; color: var(--trv-ink2); font-size: 12px; line-height: 1.6; }
.trv-diagnose-grid div { display: flex; gap: 3px; flex-wrap: wrap; color: var(--trv-red); font-size: 10px; }
.trv-diagnose-grid div span { border-radius: 999px; padding: 2px 6px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
.trv-diagnose-grid article.ok div { color: var(--trv-green); }
.trv-diagnose-grid article.warn div { color: var(--trv-yellow); }
.trv-diagnose-grid article.gray div { color: var(--trv-ink3); }
.trv-focus { border-radius: 12px; padding: 14px; border: 1px solid rgba(139,124,246,.2); background: linear-gradient(135deg,rgba(139,124,246,.08),rgba(32,183,216,.04)); }
.trv-focus b { display: block; margin-bottom: 10px; color: var(--trv-purple); font-size: 12px; }
.trv-focus p { margin: 0 0 8px; color: var(--trv-ink2); font-size: 12px; line-height: 1.6; }
.trv-focus strong { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 9px; border-radius: 50%; background: var(--trv-purple); color: #fff; font-size: 9px; }
.trial-review-ui ::-webkit-scrollbar { width: 4px; }
.trial-review-ui ::-webkit-scrollbar-track { background: transparent; }
.trial-review-ui ::-webkit-scrollbar-thumb { background: rgba(255,255,255,.09); border-radius: 4px; }
.modal-card:has(.trial-review-ui) .trial-review-ui {
  min-height: 0;
  overflow: hidden;
}
.modal-card:has(.trial-review-ui) .trv-pillars,
.modal-card:has(.trial-review-ui) .trv-savebar {
  flex-shrink: 0;
}
.modal-card:has(.trial-review-ui) .trv-scroll-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.modal-card:has(.trial-review-ui) .trv-content {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}
@media (max-width: 900px) {
  .modal-card:has(.trial-review-ui) { width: calc(100vw - 12px); height: calc(100vh - 12px); }
  .trv-pillars-body, .trv-diagnose-grid, .trv-signal-grid, .trv-two-col, .trv-follow-grid { grid-template-columns: 1fr; }
  .trv-result-row { align-items: flex-start; flex-direction: column; }
  .trv-header-right { display: none; }
  .trv-nav { width: auto; padding: 10px 12px 12px; }
  .trv-step-item { width: 146px; min-width: 146px; }
  .trv-nav-ai { width: 176px; min-width: 176px; }
  .trv-savebar { align-items: stretch; flex-direction: column; }
  .trv-savebar-actions { justify-content: stretch; }
  .trv-savebar-actions button { flex: 1; }
}

/* 招生经营总览：目标倒推 + 执行正推 */
.ops-periodbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 18px;
  padding: 12px;
  border: 1px solid rgba(42, 195, 222, .16);
  border-radius: 14px;
  background: rgba(11, 31, 46, .68);
}
.ops-periodbar button {
  min-width: 70px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 999px;
  padding: 8px 14px;
  background: rgba(15, 33, 48, .75);
  color: #8fb8d7;
  cursor: pointer;
  transition: .16s ease;
}
.ops-periodbar button:hover,
.ops-periodbar button.active {
  border-color: rgba(42, 195, 222, .75);
  background: rgba(42, 195, 222, .16);
  color: #22d3ee;
  transform: translateY(-1px);
}
.ops-periodbar span {
  color: #7fa5c4;
  font-size: 13px;
}
.ops-goal-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 18px;
  margin-bottom: 18px;
}
.ops-goal-main,
.ops-goal-side,
.ops-funnel-panel,
.ops-action-panel {
  border: 1px solid rgba(42, 195, 222, .14);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(15, 35, 52, .88), rgba(10, 24, 38, .9));
  box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
}
.ops-goal-main {
  padding: 22px;
}
.ops-goal-main .eyebrow {
  margin: 0 0 6px;
  color: #22d3ee;
  font-size: 13px;
  font-weight: 800;
}
.ops-goal-main h3 {
  margin: 0 0 16px;
  color: #f8fafc;
  font-size: 22px;
}
.ops-goal-grid,
.ops-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.ops-kpi-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 18px;
}
.ops-kpi {
  position: relative;
  min-height: 116px;
  padding: 18px 18px 16px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 16px;
  background: rgba(18, 41, 59, .86);
}
.ops-kpi::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: #22d3ee;
}
.ops-kpi.ops-green::before { background: #35d082; }
.ops-kpi.ops-purple::before { background: #8b7cf6; }
.ops-kpi.ops-yellow::before { background: #f5b833; }
.ops-kpi.ops-orange::before { background: #f0a34b; }
.ops-kpi span {
  display: block;
  color: #7fa5c4;
  font-size: 13px;
}
.ops-kpi strong {
  display: block;
  margin: 10px 0 8px;
  color: #f8fafc;
  font-size: 32px;
  line-height: 1;
}
.ops-kpi small {
  display: block;
  color: #8fb8d7;
  font-size: 13px;
}
.ops-delta {
  font-weight: 800;
}
.ops-delta.good { color: #35d082; }
.ops-delta.bad { color: #ff6b7a; }
.ops-delta.neutral { color: #7fa5c4; }
.ops-goal-side {
  padding: 20px;
}
.ops-goal-side h4 {
  margin: 0 0 14px;
  color: #f8fafc;
  font-size: 18px;
}
.ops-progress-row {
  margin-bottom: 15px;
}
.ops-progress-row div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
  color: #d8e8f6;
}
.ops-progress-row b {
  font-size: 13px;
}
.ops-progress-row span {
  color: #8fb8d7;
  font-size: 13px;
}
.ops-progress-row i {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, .16);
}
.ops-progress-row em {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #22d3ee, #f0a34b);
}
.ops-progress-row em.ops-green { background: #35d082; }
.ops-progress-row em.ops-purple { background: #8b7cf6; }
.ops-progress-row em.ops-yellow { background: #f5b833; }
.ops-funnel-panel {
  padding: 20px;
  margin-bottom: 18px;
}
.ops-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.ops-panel-head h3 {
  margin: 0;
  color: #f8fafc;
  font-size: 18px;
}
.ops-panel-head span {
  color: #7fa5c4;
  font-size: 13px;
}
.ops-funnel-line {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.ops-funnel-line article {
  position: relative;
  padding: 16px 18px;
  border: 1px solid rgba(148, 163, 184, .13);
  border-radius: 14px;
  background: rgba(8, 21, 34, .64);
}
.ops-funnel-line article:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 50%;
  right: -12px;
  z-index: 1;
  transform: translateY(-50%);
  color: #22d3ee;
  font-weight: 900;
}
.ops-funnel-line i {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(42, 195, 222, .12);
  color: #22d3ee;
  font-style: normal;
  font-weight: 900;
}
.ops-funnel-line b,
.ops-funnel-line span {
  display: block;
  margin-top: 8px;
  color: #8fb8d7;
  font-size: 13px;
}
.ops-funnel-line strong {
  display: block;
  margin-top: 8px;
  color: #fff;
  font-size: 28px;
}
.ops-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.ops-action-panel {
  padding: 20px;
}
.ops-action-card {
  width: 100%;
  display: block;
  margin-bottom: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(42, 195, 222, .14);
  border-radius: 14px;
  background: rgba(8, 21, 34, .55);
  text-align: left;
  cursor: pointer;
  transition: .16s ease;
}
.ops-action-card:hover {
  border-color: rgba(42, 195, 222, .6);
  background: rgba(42, 195, 222, .08);
  transform: translateY(-1px);
}
.ops-action-card b,
.ops-action-card span,
.ops-action-card em {
  display: block;
}
.ops-action-card b {
  color: #f8fafc;
  font-size: 15px;
}
.ops-action-card span {
  margin: 6px 0 8px;
  color: #9bbbd4;
  font-size: 13px;
  line-height: 1.6;
}
.ops-action-card em {
  color: #22d3ee;
  font-style: normal;
  font-weight: 800;
}
.ops-report-list p {
  margin: 0 0 12px;
  color: #9bbbd4;
  line-height: 1.7;
}
.ops-report-list b {
  color: #f8fafc;
}
.ops-target-form .notice {
  margin: 14px 0;
}
.ops-report-modal {
  max-width: 920px;
}
.ops-report-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.ops-report-modal h3 {
  margin: 18px 0 10px;
}
.ops-report-modal li {
  margin-bottom: 8px;
  color: #c6d7e5;
  line-height: 1.7;
}
.ops-recruit-brief {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.ops-focus-panel {
  padding: 18px;
  margin-bottom: 18px;
  border: 1px solid rgba(42, 195, 222, .14);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(15, 35, 52, .88), rgba(10, 24, 38, .9));
  box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
}
.ops-route-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}
.ops-route-card {
  display: grid;
  gap: 7px;
  min-height: 168px;
  padding: 16px;
  text-align: left;
  color: #f8fafc;
  background: rgba(8, 25, 39, .72);
  border: 1px solid rgba(54, 191, 215, .18);
  border-radius: 16px;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.ops-route-card:hover {
  transform: translateY(-3px);
  border-color: rgba(54, 191, 215, .58);
  background: rgba(15, 45, 65, .88);
  box-shadow: 0 14px 28px rgba(0, 0, 0, .24);
}
.ops-route-card i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(54, 191, 215, .14);
  font-style: normal;
}
.ops-route-card b {
  font-size: 18px;
  line-height: 1.25;
}
.ops-route-card strong {
  color: #22d3ee;
  font-size: 20px;
}
.ops-route-card span,
.ops-route-card em {
  color: #9bbbd4;
  font-size: 13px;
  font-style: normal;
  line-height: 1.55;
}
.ops-route-card em {
  color: #f3c04f;
}
.ops-route-arrow {
  display: grid;
  place-items: center;
  color: #22d3ee;
  font-weight: 900;
  opacity: .75;
}
@media (max-width: 1100px) {
  .ops-goal-panel,
  .ops-two-col {
    grid-template-columns: 1fr;
  }
  .ops-kpi-grid,
  .ops-goal-grid,
  .ops-recruit-brief,
  .ops-report-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ops-funnel-line {
    grid-template-columns: 1fr 1fr;
  }
  .ops-route-grid {
    grid-template-columns: 1fr;
  }
  .ops-route-arrow {
    display: none;
  }
}
@media (max-width: 640px) {
  .ops-periodbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .ops-kpi-grid,
  .ops-goal-grid,
  .ops-recruit-brief,
  .ops-report-summary,
  .ops-funnel-line {
    grid-template-columns: 1fr;
  }
  .ops-funnel-line article::after {
    display: none;
  }
}

/* ── 慧校总览 / 校区周报：目标总账与过程复盘 ───────────────────── */
.dc-switch {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 18px;
  color: #7fa6c5;
}
.dc-switch button {
  border: 1px solid rgba(124, 147, 180, .26);
  background: rgba(13, 29, 44, .72);
  color: #a8c4dc;
  border-radius: 12px;
  padding: 9px 18px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.dc-switch button:hover,
.dc-switch button.active {
  transform: translateY(-1px);
  color: #06121d;
  background: #2bc4df;
  border-color: #2bc4df;
}
.dc-annual,
.dc-panel,
.dc-week-conclusion {
  border: 1px solid rgba(124, 147, 180, .22);
  background: rgba(20, 37, 54, .88);
  border-radius: 16px;
  padding: 22px 24px;
  margin: 18px 0;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
}
.dc-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}
.dc-section-head h3 {
  margin: 0;
  color: #f8fbff;
  font-size: 18px;
}
.dc-section-head span,
.dc-muted {
  color: #7fa6c5;
}
.dc-ai-panel .dc-section-head span {
  margin-left: auto;
}
.dc-ai-action {
  min-height: 40px;
  padding: 0 18px;
  border-radius: 12px;
  white-space: nowrap;
  box-shadow: 0 10px 24px rgba(34, 197, 230, .18);
}
.dc-good {
  color: #39d98a !important;
}
.dc-bad {
  color: #ff5d6c !important;
}
.dc-goalbar {
  position: relative;
  height: 18px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(33, 50, 70, .95);
}
.dc-goalbar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #f0b22d, #ffcf55);
}
.dc-goalbar em {
  position: absolute;
  top: -4px;
  bottom: -4px;
  width: 2px;
  background: rgba(220, 234, 246, .72);
}
.dc-alert-text,
.dc-ok-text {
  display: inline-block;
  margin: 14px 0 0;
  padding: 8px 13px;
  border-radius: 10px;
  font-weight: 900;
}
.dc-alert-text {
  color: #ff6c76;
  border: 1px solid rgba(255, 93, 108, .42);
  background: rgba(255, 93, 108, .1);
}
.dc-ok-text {
  color: #39d98a;
  border: 1px solid rgba(57, 217, 138, .34);
  background: rgba(57, 217, 138, .09);
}
.dc-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 28px 0 14px;
  color: #d8ebfb;
  font-weight: 900;
}
.dc-section-title i {
  width: 9px;
  height: 9px;
  border-radius: 99px;
  background: #22c4df;
  box-shadow: 0 0 18px rgba(34, 196, 223, .7);
}
.dc-rate-grid,
.dc-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.dc-rate-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.dc-rate,
.dc-card {
  position: relative;
  overflow: hidden;
  min-height: 118px;
  padding: 20px 22px;
  border-radius: 16px;
  border: 1px solid rgba(124, 147, 180, .18);
  background: rgba(18, 37, 56, .92);
}
.dc-rate::before,
.dc-card::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 4px;
  background: var(--dc-tone, #22c4df);
}
.dc-rate span,
.dc-card span {
  display: block;
  color: #7fa6c5;
  font-weight: 800;
  margin-bottom: 10px;
}
.dc-rate strong,
.dc-card strong {
  display: block;
  color: #f8fbff;
  font-size: 36px;
  line-height: 1;
  margin-bottom: 10px;
}
.dc-rate small,
.dc-card small {
  color: #89aac4;
  font-weight: 700;
}
.dc-rate-green,
.dc-card-green {
  --dc-tone: #35d083;
}
.dc-rate-yellow,
.dc-card-yellow {
  --dc-tone: #f1b733;
}
.dc-rate-red,
.dc-card-red {
  --dc-tone: #ff5d6c;
}
.dc-card-blue {
  --dc-tone: #22c4df;
}
.dc-card-purple {
  --dc-tone: #8b78ff;
}
.dc-warning {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 18px 0;
  padding: 18px 20px;
  border: 1px solid rgba(255, 93, 108, .32);
  border-radius: 14px;
  background: rgba(255, 93, 108, .08);
  color: #d9e8f6;
  line-height: 1.7;
}
.dc-warning b {
  color: #ffb84d;
  white-space: nowrap;
}
.dc-warning strong {
  color: #ff5d6c;
}
.dc-funnel-bars {
  display: grid;
  gap: 14px;
}
.dc-funnel-row {
  display: grid;
  grid-template-columns: 86px minmax(180px, 1fr) 72px minmax(160px, .5fr);
  gap: 14px;
  align-items: center;
  color: #9bbbd4;
}
.dc-funnel-row b {
  color: #f4fbff;
}
.dc-funnel-row strong {
  color: #f4fbff;
  font-size: 20px;
}
.dc-funnel-row i {
  height: 16px;
  border-radius: 999px;
  background: rgba(7, 17, 28, .68);
  overflow: hidden;
}
.dc-funnel-row em {
  display: block;
  height: 100%;
  border-radius: inherit;
}
.dc-bar-blue {
  background: linear-gradient(90deg, #22c4df, #4ad7ea);
}
.dc-bar-purple {
  background: linear-gradient(90deg, #8b78ff, #a496ff);
}
.dc-bar-yellow {
  background: linear-gradient(90deg, #f0b22d, #ffcf55);
}
.dc-bar-green {
  background: linear-gradient(90deg, #35d083, #57e59c);
}
.dc-problem-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.dc-problem-grid button,
.dc-issue-list button {
  text-align: left;
  border: 1px solid rgba(124, 147, 180, .18);
  background: rgba(12, 27, 42, .86);
  color: #c5daed;
  border-radius: 14px;
  padding: 16px;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.dc-problem-grid button:hover,
.dc-issue-list button:hover {
  transform: translateY(-2px);
  border-color: rgba(34, 196, 223, .58);
  background: rgba(17, 47, 68, .92);
}
.dc-problem-grid b,
.dc-issue-list b {
  display: block;
  color: #f6fbff;
  font-size: 17px;
  margin-bottom: 8px;
}
.dc-problem-grid span,
.dc-issue-list span {
  display: block;
  line-height: 1.6;
}
.dc-problem-grid em,
.dc-issue-list em {
  display: block;
  color: #22c4df;
  font-style: normal;
  font-weight: 900;
  margin-top: 10px;
}
.dc-week-conclusion {
  display: flex;
  gap: 18px;
  border-color: rgba(255, 93, 108, .32);
  background: linear-gradient(90deg, rgba(255, 93, 108, .12), rgba(20, 37, 54, .9));
}
.dc-week-conclusion > i {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 14px;
  background: rgba(34, 196, 223, .16);
  font-style: normal;
  font-size: 24px;
}
.dc-week-conclusion h3 {
  margin: 0 0 8px;
  color: #ff8a98;
}
.dc-week-conclusion p {
  margin: 0;
  line-height: 1.8;
}
.dc-week-conclusion b {
  color: #39d98a;
}
.dc-report-grid {
  display: grid;
  grid-template-columns: 1.25fr .85fr;
  gap: 18px;
}
.dc-issue-list {
  display: grid;
  gap: 12px;
}
.dc-issue-list button {
  display: grid;
  grid-template-columns: 30px 140px 1fr 80px;
  align-items: center;
  gap: 12px;
}
.dc-issue-list i {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 99px;
  background: rgba(34, 196, 223, .16);
  color: #22c4df;
  font-style: normal;
  font-weight: 900;
}
.dc-report-notes {
  display: grid;
  gap: 12px;
  color: #c5daed;
}
.dc-report-notes p {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(7, 17, 28, .42);
  line-height: 1.7;
}
.dc-ai-result {
  min-height: 120px;
  border: 1px dashed rgba(124, 147, 180, .25);
  border-radius: 14px;
  padding: 18px;
  background: rgba(7, 17, 28, .44);
  color: #bad2e8;
}
.dc-ai-result pre {
  margin: 0;
  color: #d8ebfb;
  white-space: pre-wrap;
  line-height: 1.75;
  font-family: inherit;
}
#page-campusReport .page-title {
  margin-bottom: 12px;
  padding-bottom: 14px;
}
#page-campusReport .page-title-left h2 {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.18;
}
#page-campusReport .page-title-left p {
  font-size: 12px;
  line-height: 1.45;
}
#page-campusReport .page-title .btn-primary,
#page-campusReport .page-title .btn-ghost {
  min-height: 32px;
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 12px;
}
#page-campusReport .dc-kpi-grid,
#page-campusReport .dc-report-grid {
  gap: 12px;
}
#page-campusReport .dc-card {
  min-height: 86px;
  padding: 13px 15px;
  border-radius: 10px;
}
#page-campusReport .dc-card::before {
  height: 2px;
}
#page-campusReport .dc-card span {
  margin-bottom: 7px;
  font-size: 11px;
  font-weight: 700;
}
#page-campusReport .dc-card strong {
  margin-bottom: 6px;
  font-size: 26px;
  font-weight: 800;
}
#page-campusReport .dc-card small {
  font-size: 11px;
  font-weight: 600;
}
#page-campusReport .dc-section-title {
  margin: 18px 0 10px;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
}
#page-campusReport .dc-section-title i {
  width: 7px;
  height: 7px;
}
#page-campusReport .dc-panel,
#page-campusReport .dc-week-conclusion {
  border-radius: 10px;
  padding: 12px 14px;
}
#page-campusReport .dc-week-conclusion {
  gap: 12px;
  margin-bottom: 12px;
}
#page-campusReport .dc-week-conclusion > i {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  font-size: 17px;
}
#page-campusReport .dc-week-conclusion h3,
#page-campusReport .dc-section-head h3 {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 800;
}
#page-campusReport .dc-week-conclusion p,
#page-campusReport .dc-report-notes p,
#page-campusReport .dc-ai-result,
#page-campusReport .dc-ai-result pre {
  font-size: 12px;
  line-height: 1.6;
}
#page-campusReport .dc-funnel-bars {
  gap: 9px;
}
#page-campusReport .dc-funnel-row {
  grid-template-columns: 78px minmax(160px,1fr) 58px minmax(120px,.42fr);
  gap: 10px;
  font-size: 12px;
}
#page-campusReport .dc-funnel-row strong {
  font-size: 16px;
  font-weight: 800;
}
#page-campusReport .dc-funnel-row i {
  height: 12px;
}
#page-campusReport .dc-section-head {
  margin-bottom: 10px;
}
#page-campusReport .dc-section-head span {
  font-size: 11px;
}
#page-campusReport .dc-issue-list {
  gap: 8px;
}
#page-campusReport .dc-issue-list button {
  grid-template-columns: 24px 110px 1fr 58px;
  gap: 9px;
  padding: 10px 12px;
  border-radius: 9px;
}
#page-campusReport .dc-issue-list i {
  width: 22px;
  height: 22px;
  font-size: 11px;
  font-weight: 800;
}
#page-campusReport .dc-issue-list b {
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 800;
}
#page-campusReport .dc-issue-list span,
#page-campusReport .dc-issue-list em {
  font-size: 11px;
}
#page-campusReport .dc-report-notes {
  gap: 8px;
}
#page-campusReport .dc-report-notes p {
  padding: 9px 10px;
  border-radius: 8px;
}
#page-campusReport .dc-ai-result {
  min-height: 86px;
  padding: 12px;
  border-radius: 10px;
}
#page-command .page-title {
  margin-bottom: 12px;
  padding-bottom: 14px;
}
#page-command .page-title-left h2 {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.18;
}
#page-command .page-title-left p {
  font-size: 12px;
  line-height: 1.45;
}
#page-command .page-title .btn-primary,
#page-command .page-title .btn-ghost {
  min-height: 32px;
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 12px;
}
#page-command .dc-switch {
  gap: 8px;
  margin-bottom: 12px;
  font-size: 12px;
}
#page-command .dc-switch button {
  border-radius: 9px;
  padding: 7px 13px;
  font-size: 12px;
}
#page-command .dc-annual,
#page-command .dc-panel {
  margin: 12px 0;
  padding: 13px 15px;
  border-radius: 10px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .14);
}
#page-command .dc-section-head {
  gap: 10px;
  margin-bottom: 10px;
}
#page-command .dc-section-head h3 {
  font-size: 14px;
  font-weight: 800;
}
#page-command .dc-section-head span,
#page-command .dc-section-head b {
  font-size: 11px;
}
#page-command .dc-goalbar {
  height: 12px;
}
#page-command .dc-alert-text,
#page-command .dc-ok-text {
  margin-top: 9px;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 800;
}
#page-command .dc-section-title {
  margin: 18px 0 10px;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
}
#page-command .dc-section-title i {
  width: 7px;
  height: 7px;
}
#page-command .dc-rate-grid,
#page-command .dc-kpi-grid {
  gap: 12px;
}
#page-command .dc-rate,
#page-command .dc-card {
  min-height: 86px;
  padding: 13px 15px;
  border-radius: 10px;
}
#page-command .dc-rate::before,
#page-command .dc-card::before {
  height: 2px;
}
#page-command .dc-rate span,
#page-command .dc-card span {
  margin-bottom: 7px;
  font-size: 11px;
  font-weight: 700;
}
#page-command .dc-rate strong,
#page-command .dc-card strong {
  margin-bottom: 6px;
  font-size: 26px;
  font-weight: 800;
}
#page-command .dc-rate small,
#page-command .dc-card small {
  font-size: 11px;
  font-weight: 600;
}
#page-command .dc-warning {
  gap: 8px;
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 9px;
  font-size: 12px;
  line-height: 1.55;
}
#page-command .dc-funnel-bars {
  gap: 9px;
}
#page-command .dc-funnel-row {
  grid-template-columns: 78px minmax(160px,1fr) 58px minmax(120px,.42fr);
  gap: 10px;
  font-size: 12px;
}
#page-command .dc-funnel-row strong {
  font-size: 16px;
  font-weight: 800;
}
#page-command .dc-funnel-row i {
  height: 12px;
}
#page-command .dc-problem-grid {
  gap: 10px;
}
#page-command .dc-problem-grid button {
  padding: 11px 12px;
  border-radius: 9px;
}
#page-command .dc-problem-grid b {
  margin-bottom: 4px;
  font-size: 13px;
  font-weight: 800;
}
#page-command .dc-problem-grid span {
  font-size: 12px;
  line-height: 1.55;
}
#page-command .dc-problem-grid em {
  margin-top: 7px;
  font-size: 12px;
}
@media (max-width: 1100px) {
  .dc-rate-grid,
  .dc-kpi-grid,
  .dc-report-grid {
    grid-template-columns: 1fr 1fr;
  }
  .dc-funnel-row {
    grid-template-columns: 80px 1fr 58px;
  }
  .dc-funnel-row span {
    grid-column: 2 / -1;
  }
}
@media (max-width: 720px) {
  .dc-rate-grid,
  .dc-kpi-grid,
  .dc-report-grid,
  .dc-problem-grid {
    grid-template-columns: 1fr;
  }
  .dc-issue-list button {
    grid-template-columns: 30px 1fr;
  }
  .dc-issue-list span,
  .dc-issue-list em {
    grid-column: 2;
  }
}

/* 电邀中心 V2：高密度表格工作台 */
.dial-v2-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 16px;
  margin: 18px 0 18px;
}
.dial-v2-kpis .metric {
  min-height: 110px;
  padding: 22px 24px;
}
.dial-v2-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid rgba(255, 99, 118, .34);
  border-radius: 14px;
  background: rgba(255, 99, 118, .08);
}
.dial-v2-alert strong {
  margin-right: 6px;
  color: #fff;
}
.dial-v2-alert button,
.dial-v2-chip,
.dial-v2-sort,
.dial-v2-filter-panel select,
.dial-v2-search {
  border: 1px solid rgba(148, 174, 205, .18);
  background: rgba(12, 25, 38, .82);
  color: #eaf6ff;
  border-radius: 12px;
  font: inherit;
}
.dial-v2-alert button {
  padding: 8px 12px;
  color: #ffc2ca;
  cursor: pointer;
}
.dial-v2-alert button:hover {
  border-color: rgba(255, 99, 118, .7);
  background: rgba(255, 99, 118, .16);
}
.dial-v2-panel {
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid rgba(45, 197, 232, .16);
  border-radius: 16px;
  background: rgba(16, 38, 55, .72);
}
.dial-v2-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.dial-v2-chips,
.dial-v2-actions,
.dial-v2-filter-panel {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.dial-v2-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 13px;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.dial-v2-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(45, 197, 232, .48);
  background: rgba(45, 197, 232, .1);
}
.dial-v2-chip.active {
  border-color: rgba(45, 197, 232, .7);
  background: linear-gradient(135deg, rgba(45, 197, 232, .28), rgba(45, 197, 232, .14));
  color: #dffaff;
}
.dial-v2-chip b {
  display: inline-flex;
  min-width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(148, 174, 205, .15);
  color: #dffaff;
}
.dial-v2-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--dot, #25c7e8);
}
.dial-v2-search {
  width: min(340px, 50vw);
  height: 42px;
  padding: 0 14px;
}
.dial-v2-sort {
  height: 42px;
  padding: 0 14px;
}
.dial-v2-filter-panel {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 174, 205, .12);
}
.dial-v2-filter-panel label {
  display: grid;
  gap: 6px;
  color: #76a4c7;
  font-size: 13px;
}
.dial-v2-filter-panel select {
  min-width: 156px;
  height: 40px;
  padding: 0 12px;
}
.dial-v2-filter-panel > span {
  margin-left: auto;
  color: #76a4c7;
}
.dial-v2-table-wrap {
  overflow: hidden;
  border: 1px solid rgba(45, 197, 232, .16);
  border-radius: 16px;
  background: rgba(16, 38, 55, .78);
}
.dial-v2-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.dial-v2-table th,
.dial-v2-table td {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(148, 174, 205, .08);
  text-align: left;
  vertical-align: middle;
}
.dial-v2-table th {
  color: #6f9abe;
  font-size: 13px;
  font-weight: 700;
  background: rgba(19, 43, 62, .86);
}
.dial-v2-table td {
  color: #e8f6ff;
  font-size: 14px;
}
.dial-v2-table tbody tr {
  border-left: 4px solid transparent;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
  cursor: default;
}
.dial-v2-table tbody tr:hover {
  background: rgba(45, 197, 232, .08);
  box-shadow: inset 0 0 0 1px rgba(45, 197, 232, .12);
}
.dial-v2-table tbody tr.row-new { border-left-color: #25c7e8; }
.dial-v2-table tbody tr.row-follow { border-left-color: #f0b533; }
.dial-v2-table tbody tr.row-appointed { border-left-color: #8a76ff; }
.dial-v2-table tbody tr.row-today { box-shadow: inset 3px 0 0 rgba(255, 99, 118, .8); }
.dial-v2-table tbody tr.row-star { background-image: linear-gradient(90deg, rgba(240, 181, 51, .08), transparent 30%); }
.dial-v2-table .col-star {
  width: 42px;
  text-align: center;
}
.dial-v2-table .col-note {
  width: 34%;
}
.dial-table-star {
  border: 0;
  background: transparent;
  color: rgba(119, 160, 194, .55);
  font-size: 18px;
  cursor: pointer;
}
.dial-table-star.active,
.dial-table-star:hover {
  color: #f0b533;
}
.dial-v2-student {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.dial-v2-student strong {
  font-size: 15px;
  color: #fff;
}
.dial-v2-student span {
  color: #8ec8ee;
}
.dial-v2-sub {
  margin-top: 4px;
  color: #6f9abe;
  font-size: 12px;
  line-height: 1.4;
}
.dial-v2-stage-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}
.dial-v2-stage-pill.new { background: rgba(37, 199, 232, .14); color: #31d7f5; }
.dial-v2-stage-pill.follow { background: rgba(240, 181, 51, .16); color: #ffd15c; }
.dial-v2-stage-pill.appointed { background: rgba(138, 118, 255, .18); color: #a996ff; }
.dial-v2-stage-pill.enrolled { background: rgba(53, 205, 127, .16); color: #4ee38f; }
.dial-v2-note-pill {
  display: inline-block;
  max-width: 100%;
  padding: 7px 11px;
  border-radius: 10px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 700;
}
.note-danger {
  border: 1px solid rgba(255, 99, 118, .34);
  background: rgba(255, 99, 118, .15);
  color: #ffd4da;
}
.note-warn {
  border: 1px solid rgba(240, 181, 51, .35);
  background: rgba(240, 181, 51, .15);
  color: #ffe0a0;
}
.note-good {
  border: 1px solid rgba(53, 205, 127, .34);
  background: rgba(53, 205, 127, .14);
  color: #b6ffd4;
}
.note-muted {
  border: 1px solid rgba(148, 174, 205, .12);
  background: rgba(148, 174, 205, .08);
  color: #93b7d4;
  font-weight: 600;
}
.dial-v2-score {
  font-weight: 900;
  font-size: 17px;
}
.dial-v2-score.good { color: #35cd7f; }
.dial-v2-score.warn { color: #f0b533; }
.dial-v2-score.danger { color: #ff6376; }
.dial-v2-score.muted { color: #71849a; }
.dial-v2-judges {
  display: grid;
  gap: 4px;
  min-width: 118px;
}
.dial-v2-judge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  max-width: 150px;
  height: 21px;
  padding: 0 7px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #8fa7ba;
  background: rgba(143, 167, 186, .10);
}
.dial-v2-judge b {
  color: rgba(255,255,255,.48);
  font-size: 10px;
}
.dial-v2-judge.good {
  color: #35cd7f;
  background: rgba(53, 205, 127, .12);
}
.dial-v2-judge.warn {
  color: #f0b533;
  background: rgba(240, 181, 51, .13);
}
.dial-v2-judge.danger {
  color: #ff6376;
  background: rgba(255, 99, 118, .13);
}
.dial-call-btn {
  min-width: 86px;
  height: 40px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #32c8e8, #20b5d1);
  color: #06141d;
  font-weight: 900;
  cursor: pointer;
}
.dial-call-btn:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}
.dial-v2-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin: 16px 0 0;
  color: #7aa6c8;
}
@media (max-width: 1180px) {
  .dial-v2-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
  .dial-v2-table-wrap {
    overflow-x: auto;
  }
  .dial-v2-table {
    min-width: 1120px;
  }
}
@media (max-width: 720px) {
  .dial-v2-kpis {
    grid-template-columns: 1fr;
  }
  .dial-v2-toolbar,
  .dial-v2-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .dial-v2-search,
  .dial-v2-sort,
  .dial-v2-actions .btn {
    width: 100%;
  }
}

/* 电邀中心：复刻高密度 Excel 手感设计 */
.dial-v2-head {
  margin: 0 0 12px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(148, 174, 205, .12);
}
.dial-v2-head h1 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0;
}
.dial-v2-head small {
  color: rgba(255, 255, 255, .5);
  font-size: 12px;
  font-weight: 600;
}
.dial-v2-title-icon {
  color: #f04f8a;
  font-size: 19px;
}
.dial-v2-kpis {
  display: none !important;
}
.dial-v2-alert {
  min-height: 0;
  margin: 0 0 16px;
  padding: 11px 15px;
  border: 1px solid rgba(224, 82, 82, .25);
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(224, 82, 82, .1), rgba(226, 170, 56, .05));
  gap: 12px;
}
.dial-v2-alert strong {
  color: #fff;
  font-size: 14px;
  font-weight: 800;
}
.dial-v2-alert strong em {
  color: #ffb0b0;
  font-style: normal;
}
.dial-v2-alert-icon {
  font-size: 18px;
}
.dial-v2-alert button {
  min-height: 0;
  padding: 3px 11px;
  border: 1px solid rgba(224, 82, 82, .3);
  border-radius: 16px;
  background: rgba(224, 82, 82, .15);
  color: #ffb0b0;
  font-size: 12px;
  font-weight: 700;
}
.dial-v2-panel {
  margin-bottom: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.dial-v2-toolbar {
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.dial-v2-chips {
  gap: 6px;
}
.dial-v2-chip {
  min-height: 32px;
  padding: 6px 13px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 20px;
  background: #161d2b;
  color: rgba(255, 255, 255, .5);
  font-size: 12.5px;
  font-weight: 700;
  gap: 5px;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.dial-v2-chip:hover {
  transform: none;
  border-color: rgba(255, 255, 255, .18);
  background: #1c2534;
  color: rgba(255, 255, 255, .92);
}
.dial-v2-chip.active {
  border-color: #20b7d8;
  background: #20b7d8;
  color: #fff;
}
.dial-v2-chip b {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  background: rgba(255, 255, 255, .12);
  font-size: 11px;
}
.dial-v2-chip.active b {
  background: rgba(255, 255, 255, .25);
}
.dial-v2-dot {
  width: 7px;
  height: 7px;
}
.dial-v2-actions {
  flex-wrap: nowrap;
  gap: 10px;
  margin-left: auto;
}
.dial-v2-search {
  width: 230px;
  height: 36px;
  padding: 0 12px;
  border-color: rgba(255, 255, 255, .13);
  border-radius: 9px;
  background: #161d2b;
  color: rgba(255, 255, 255, .92);
  font-size: 13px;
}
.dial-v2-sort {
  width: auto;
  min-width: 190px;
  height: 36px;
  padding: 0 10px;
  border-color: rgba(255, 255, 255, .13);
  border-radius: 9px;
  background: #161d2b;
  font-size: 12.5px;
}
.dial-v2-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, .28);
  font-size: 11px;
}
.dial-v2-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.dial-v2-legend i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: var(--legend);
}
.dial-v2-star-legend {
  color: rgba(255, 255, 255, .38);
}
.dial-v2-filter-panel {
  gap: 8px;
  margin: 0 0 12px;
  padding-top: 0;
  border-top: 0;
}
.dial-v2-filter-panel label {
  color: rgba(255, 255, 255, .5);
  font-size: 12px;
  gap: 4px;
}
.dial-v2-filter-panel select {
  min-width: 128px;
  height: 34px;
  padding: 0 10px;
  border-color: rgba(255, 255, 255, .13);
  border-radius: 9px;
  background: #161d2b;
  font-size: 12.5px;
}
.dial-v2-filter-panel .btn {
  min-height: 34px;
  height: 34px;
  padding: 0 11px;
  border-radius: 9px;
  font-size: 12px;
}
.dial-v2-filter-panel > span {
  color: rgba(255, 255, 255, .38);
  font-size: 12px;
}
.dial-v2-table-wrap {
  overflow: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.dial-v2-table {
  border-collapse: separate;
  border-spacing: 0 4px;
  table-layout: fixed;
}
.dial-v2-table th {
  padding: 6px 10px;
  background: #0e1420;
  color: rgba(255, 255, 255, .28);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .04em;
}
.dial-v2-table td {
  padding: 9px 10px;
  border-top: 1px solid rgba(255, 255, 255, .07);
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  background: #161d2b;
  color: rgba(255, 255, 255, .92);
  font-size: 12.5px;
}
.dial-v2-table tbody tr {
  border-left: 0;
  background: transparent;
  cursor: default;
}
.dial-v2-table tbody tr:hover {
  background: transparent;
  box-shadow: none;
}
.dial-v2-table tbody tr:hover td {
  background: #1c2534;
}
.dial-v2-table tbody tr td:first-child {
  padding-left: 12px;
  border-left: 3px solid transparent;
  border-radius: 9px 0 0 9px;
}
.dial-v2-table tbody tr td:last-child {
  border-radius: 0 9px 9px 0;
}
.dial-v2-table tbody tr.row-new td:first-child {
  border-left-color: #25c7e8;
}
.dial-v2-table tbody tr.row-follow td:first-child {
  border-left-color: #f0b533;
}
.dial-v2-table tbody tr.row-appointed td:first-child {
  border-left-color: #8a76ff;
}
.dial-v2-table tbody tr.row-enrolled td:first-child {
  border-left-color: #35cd7f;
}
.dial-v2-table tbody tr.row-lost td:first-child {
  border-left-color: #71849a;
}
.dial-v2-table tbody tr.row-today td:first-child {
  border-left-color: #ff6376;
}
.dial-v2-table .col-star {
  width: 36px;
}
.dial-v2-table .col-note {
  width: 34%;
}
.dial-table-star {
  font-size: 16px;
  opacity: .35;
}
.dial-table-star.active,
.dial-table-star:hover {
  color: #f5c542;
  opacity: 1;
}
.dial-v2-student {
  display: block;
}
.dial-v2-student strong {
  color: #fff;
  font-size: 13.5px;
  font-weight: 800;
}
.dial-v2-student span {
  display: block;
  margin-top: 2px;
  color: rgba(255, 255, 255, .28);
  font-size: 11px;
}
.dial-v2-sub {
  margin-top: 2px;
  color: rgba(255, 255, 255, .36);
  font-size: 11px;
  line-height: 1.35;
}
.dial-v2-stage-pill {
  min-height: 20px;
  padding: 2px 8px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800;
}
.dial-v2-note-pill {
  padding: 3px 9px;
  border: 0;
  border-radius: 7px;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.4;
}
.note-danger {
  border: 0;
  background: rgba(224, 82, 82, .12);
  color: #ffb3b3;
}
.note-warn {
  border: 0;
  background: rgba(226, 170, 56, .12);
  color: #e2aa38;
}
.note-good {
  border: 0;
  background: rgba(54, 194, 117, .1);
  color: #7fd6a3;
}
.note-muted {
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, .5);
  font-weight: 500;
}
.dial-v2-score {
  font-size: 13px;
  font-weight: 800;
}
.dial-call-btn {
  min-width: 76px;
  height: 32px;
  border-radius: 7px;
  color: #fff;
  font-size: 12px;
}
.dial-call-btn:hover {
  transform: none;
}
.dial-v2-pager {
  margin: 10px 0 0;
  font-size: 12px;
}

/* 电邀中心排版收紧：保留 Excel 手感，把筛选、搜索和表格连成一套工具区 */
.dial-v2-head {
  margin-bottom: 10px !important;
  padding-bottom: 12px !important;
}
.dial-v2-head h1 {
  font-size: 18px !important;
  line-height: 1.25 !important;
}
.dial-v2-head small {
  margin-left: 6px !important;
  font-size: 12px !important;
  color: rgba(255, 255, 255, .52) !important;
}
.dial-v2-alert {
  margin-bottom: 12px !important;
  padding: 9px 14px !important;
}
.dial-v2-panel {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  column-gap: 14px !important;
  row-gap: 8px !important;
  margin-bottom: 8px !important;
}
.dial-v2-toolbar {
  display: contents !important;
}
.dial-v2-chips {
  grid-column: 1 !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}
.dial-v2-actions {
  grid-column: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin: 0 !important;
  flex-wrap: nowrap !important;
}
.dial-v2-chip {
  min-height: 30px !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  white-space: nowrap !important;
}
.dial-v2-chip b {
  min-width: 19px !important;
  height: 19px !important;
  font-size: 10.5px !important;
}
.dial-v2-search {
  width: 245px !important;
  height: 34px !important;
  font-size: 12.5px !important;
}
.dial-v2-sort {
  min-width: 188px !important;
  height: 34px !important;
  font-size: 12.5px !important;
}
.dial-v2-legend {
  grid-column: 1 !important;
  align-self: center !important;
  margin: 0 !important;
  gap: 14px !important;
}
.dial-v2-filter-panel {
  grid-column: 2 !important;
  display: flex !important;
  align-items: end !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  margin: 0 !important;
}
.dial-v2-filter-panel label {
  min-width: 108px !important;
  font-size: 11.5px !important;
}
.dial-v2-filter-panel select {
  min-width: 108px !important;
  height: 32px !important;
  font-size: 12px !important;
}
.dial-v2-filter-panel button,
.dial-v2-filter-panel .btn,
.dial-v2-actions button,
.dial-v2-actions .btn {
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 11px !important;
  border: 1px solid rgba(255, 255, 255, .13) !important;
  border-radius: 9px !important;
  background: #161d2b !important;
  color: rgba(255, 255, 255, .86) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  appearance: none !important;
}
.dial-v2-filter-panel button:hover,
.dial-v2-filter-panel .btn:hover,
.dial-v2-actions button:hover,
.dial-v2-actions .btn:hover {
  border-color: rgba(32, 183, 216, .55) !important;
  background: rgba(32, 183, 216, .13) !important;
  color: #dffaff !important;
}
.dial-v2-filter-panel > span {
  min-width: 90px !important;
  padding-bottom: 8px !important;
  text-align: right !important;
  font-size: 11.5px !important;
}
.dial-v2-table-wrap {
  margin-top: 0 !important;
}
.dial-v2-table th {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}
.dial-v2-table td {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

@media (max-width: 1280px) {
  .dial-v2-panel {
    grid-template-columns: 1fr !important;
  }
  .dial-v2-chips,
  .dial-v2-actions,
  .dial-v2-legend,
  .dial-v2-filter-panel {
    grid-column: 1 !important;
  }
  .dial-v2-actions,
  .dial-v2-filter-panel {
    justify-content: flex-start !important;
  }
  .dial-v2-filter-panel > span {
    min-width: 0 !important;
    margin-left: auto !important;
  }
}

/* 电邀中心：星标列复用“电邀工作台_设计.html”的高密度表格样式 */
.dial-v2-table tbody tr td:first-child {
  border-left-color: var(--rowc, transparent) !important;
  border-left-width: 3px;
  padding-left: 12px;
}
.dial-v2-table .col-star {
  width: 44px !important;
  min-width: 44px !important;
  text-align: center;
  padding-right: 8px !important;
}
.dial-table-star {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0 !important;
  background: none !important;
  color: rgba(113, 132, 154, .32) !important;
  cursor: pointer;
  font-size: 16px !important;
  line-height: 1;
  opacity: .32 !important;
  transition: color .12s ease, opacity .12s ease, transform .12s ease, text-shadow .12s ease;
}
.dial-table-star:hover {
  color: #f0b533 !important;
  opacity: .72 !important;
  transform: scale(1.08);
}
.dial-table-star.active,
.dial-table-star.on {
  color: #f0b533 !important;
  opacity: 1 !important;
  text-shadow: 0 0 12px rgba(240, 181, 51, .28);
}

/* 电邀中心：学生姓名列加宽，决策人和电话保持一行 */
.dial-v2-table .col-student {
  width: 180px !important;
  min-width: 180px !important;
}
.dial-v2-student {
  min-width: 0;
}
.dial-v2-student strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dial-v2-student span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: keep-all;
}

/* 电邀中心：筛选区收紧成工作台式一行，避免“我标星”掉到下一行 */
.dial-v2-panel {
  display: block !important;
  padding: 14px 16px !important;
}
.dial-v2-toolbar {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.dial-v2-chips {
  display: flex !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
  overflow-x: auto !important;
  scrollbar-width: none;
}
.dial-v2-chips::-webkit-scrollbar {
  display: none;
}
.dial-v2-chip {
  flex: 0 0 auto !important;
  min-height: 30px !important;
  padding: 5px 11px !important;
  font-size: 12px !important;
  white-space: nowrap !important;
}
.dial-v2-actions {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin: 0 !important;
  width: auto !important;
}
.dial-v2-search {
  width: 220px !important;
  min-width: 0 !important;
  height: 34px !important;
  font-size: 12.5px !important;
}
.dial-v2-sort {
  width: 180px !important;
  min-width: 0 !important;
  height: 34px !important;
  font-size: 12.5px !important;
}
.dial-v2-legend {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin: 10px 0 8px !important;
}
.dial-v2-filter-panel {
  display: grid !important;
  grid-template-columns: 150px 150px 190px auto 1fr !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}
.dial-v2-filter-panel select {
  width: 100% !important;
  min-width: 0 !important;
  height: 34px !important;
  font-size: 12.5px !important;
}
.dial-v2-filter-panel button,
.dial-v2-filter-panel .btn {
  width: max-content !important;
  min-height: 34px !important;
  height: 34px !important;
}
.dial-v2-filter-panel > span {
  justify-self: end !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 12px !important;
}
@media (max-width: 1380px) {
  .dial-v2-toolbar {
    gap: 8px !important;
  }
  .dial-v2-chip {
    padding-inline: 9px !important;
  }
  .dial-v2-search {
    width: 190px !important;
  }
  .dial-v2-sort {
    width: 165px !important;
  }
  .dial-v2-filter-panel {
    grid-template-columns: 135px 135px 170px auto 1fr !important;
  }
}
@media (max-width: 980px) {
  .dial-v2-toolbar {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .dial-v2-chips {
    flex-wrap: wrap !important;
    overflow: visible !important;
  }
  .dial-v2-actions {
    width: 100% !important;
  }
  .dial-v2-search,
  .dial-v2-sort {
    width: 100% !important;
  }
  .dial-v2-filter-panel {
    grid-template-columns: 1fr 1fr !important;
  }
  .dial-v2-filter-panel > span {
    grid-column: 1 / -1;
  }
}
/* 电邀中心重写版：Excel 手感表格 */
.dialx-page{--dx-panel:#101d2c;--dx-panel-2:#142335;--dx-line:#21364b;--dx-text:#edf7ff;--dx-muted:#7f9ab3;--dx-cyan:#25c6df;--dx-green:#37d37f;--dx-yellow:#f3bc36;--dx-purple:#8b75ff;--dx-red:#ff5b75}
.dialx-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0 18px}
.dialx-kpi{min-height:76px;padding:13px 17px;border-radius:10px;border:1px solid var(--dx-line);border-top:3px solid var(--dx-cyan);background:var(--dx-panel);color:var(--dx-muted)}
.dialx-kpi strong{display:block;margin:5px 0 2px;font-size:27px;line-height:1.1;color:var(--dx-text)}
.dialx-kpi span{font-size:12px;color:#6688a5}
.dialx-kpi.green{border-top-color:var(--dx-green)}.dialx-kpi.purple{border-top-color:var(--dx-purple)}.dialx-kpi.yellow{border-top-color:var(--dx-yellow)}
.dialx-alert{display:flex;align-items:center;gap:14px;padding:13px 17px;margin:0 0 16px;border-radius:12px;border:1px solid rgba(255,91,117,.35);background:rgba(255,91,117,.08);color:#eef7ff}
.dialx-alert-icon{font-size:21px}.dialx-alert strong{margin-right:8px}
.dialx-alert-pill{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,91,117,.38);background:rgba(255,91,117,.12);color:#ffcbd3;font-weight:800;font-size:13px}
.dialx-toolbar{padding:15px;margin-bottom:14px;border:1px solid #1f4055;border-radius:12px;background:#102233}
.dialx-chipline{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:12px}
.dialx-chip{display:inline-flex;align-items:center;gap:7px;height:33px;padding:0 12px;border-radius:999px;border:1px solid #2b4055;background:#141f30;color:#b8cbe0;font-size:13px;font-weight:800;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.dialx-chip:hover{transform:translateY(-1px);border-color:#29c5e8;background:#18283a}
.dialx-chip.active{border-color:var(--dx-cyan);background:var(--dx-cyan);color:#06141e}
.dialx-chip i{width:8px;height:8px;border-radius:50%;background:var(--dx-cyan)}
.dialx-chip.red i{background:var(--dx-red)}.dialx-chip.yellow i{background:var(--dx-yellow)}.dialx-chip.purple i{background:var(--dx-purple)}
.dialx-chip.star i{background:var(--dx-yellow);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%)}
.dialx-chip b{min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.1);color:inherit;font-size:12px}
.dialx-searchline{display:flex;justify-content:space-between;gap:14px;align-items:center}
.dialx-legend{display:flex;flex-wrap:wrap;gap:15px;color:#7795ad;font-size:12px}
.dialx-legend .dot{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px;vertical-align:-1px}
.dialx-legend .star-dot{color:#f3c246;margin-right:5px}
.dialx-tools{display:flex;gap:9px;align-items:center}
.dialx-search{width:270px;height:38px;border:1px solid #26394d;border-radius:8px;background:#0a1622;color:#dff2ff;padding:0 12px;outline:none;font-size:13px}
.dialx-search:focus,.dialx-select:focus{border-color:var(--dx-cyan);box-shadow:0 0 0 2px rgba(37,198,223,.12)}
.dialx-select{height:38px;min-width:152px;border:1px solid #26394d;border-radius:8px;background:#0a1622;color:#eef7ff;padding:0 12px;outline:none;font-weight:700}
.dialx-filterline .dialx-select{width:100%;min-width:0}
.dialx-sort{width:210px}.dialx-btn{height:38px;border:0;border-radius:8px;background:var(--dx-cyan);color:#07141c;padding:0 16px;font-weight:900;cursor:pointer}
.dialx-btn:hover{filter:brightness(1.06)}.dialx-btn.ghost{background:#17283a;color:#cfefff;border:1px solid #2b4055}
.dialx-filterline{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(150px,1.25fr) auto 1fr;align-items:center;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid rgba(118,160,190,.16)}
.dialx-result-count{margin-left:auto;color:#78a0bd;font-size:13px}
.dialx-table-card{border:1px solid #18384b;border-radius:10px;background:#0d1c2b;overflow:hidden}
.dialx-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
.dialx-table col.student{width:19%}.dialx-table col.grade{width:14%}.dialx-table col.stage{width:10%}.dialx-table col.note{width:33%}.dialx-table col.last{width:8%}.dialx-table col.score{width:8%}.dialx-table col.action{width:8%}
.dialx-table th{padding:10px 12px;background:#14283a;color:#7da3bf;font-size:12px;text-align:left;font-weight:800;white-space:nowrap}
.dialx-table td{padding:9px 12px;border-top:1px solid rgba(114,150,180,.12);color:#d9edff;vertical-align:middle}
.dialx-table tbody tr{transition:background .15s}.dialx-table tbody tr:hover{background:#13263a}
.dialx-row[data-lead-id]{cursor:pointer}
.dialx-row.stage-new td:first-child{border-left:3px solid var(--dx-cyan)}.dialx-row.stage-follow td:first-child{border-left:3px solid var(--dx-yellow)}.dialx-row.stage-trial td:first-child{border-left:3px solid var(--dx-purple)}.dialx-row.stage-signed td:first-child{border-left:3px solid var(--dx-green)}.dialx-row.stage-lost td:first-child{border-left:3px solid #5e6b78}
.dialx-student-cell{display:flex;align-items:center;gap:6px;min-width:0}
.dialx-star{width:28px;height:28px;border:1px solid rgba(243,194,70,.16);border-radius:50%;background:rgba(12,24,36,.9);color:#2d4355;font-size:18px;cursor:pointer;line-height:1;display:grid;place-items:center;flex:0 0 auto;transition:transform .15s,background .15s,border-color .15s,color .15s,box-shadow .15s}
.dialx-star:hover{color:#f3c246;border-color:rgba(243,194,70,.38);background:rgba(243,194,70,.1);transform:scale(1.08)}
.dialx-star.active{color:#3a2400;border-color:#f8c94a;background:linear-gradient(135deg,#ffe68a,#f0ad23);box-shadow:0 0 0 2px rgba(243,194,70,.12),0 6px 16px rgba(240,173,35,.24)}
.dialx-star:disabled{opacity:.65;cursor:wait;transform:none}
.dialx-name{font-weight:900;color:#f4fbff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:132px}
.dialx-sub{margin-top:2px;color:#7898b1;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-muted{color:#7898b1;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-stage-badge{display:inline-flex;align-items:center;height:24px;border-radius:7px;padding:0 9px;font-size:12px;font-weight:900;background:#173149;color:#30d5f1}
.dialx-stage-badge.new{background:#073145;color:#31d6f2}.dialx-stage-badge.follow{background:#3b2d0c;color:#f6c047}.dialx-stage-badge.trial{background:#28225f;color:#9c89ff}.dialx-stage-badge.signed{background:#0b3d2a;color:#35d987}.dialx-stage-badge.lost{background:#222a32;color:#83909b}
.dialx-note{display:block;width:100%;max-width:100%;padding:6px 10px;border-radius:7px;color:#9bb5c9;background:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-note.red{color:#ffd0d7;background:rgba(255,91,117,.14)}.dialx-note.green{color:#b8f2d3;background:rgba(55,211,127,.14)}.dialx-note.yellow{color:#ffe1a5;background:rgba(243,188,54,.15)}
.dialx-reason{margin-top:4px;color:#4bdcf3;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-score{font-weight:900;font-size:15px}.dialx-score.high{color:#32dc85}.dialx-score.mid{color:#f3bc36}.dialx-score.low{color:#8fa0ae}
.dialx-judges{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}
.dialx-judge{display:inline-flex;align-items:center;gap:4px;max-width:78px;height:22px;padding:0 7px;border-radius:7px;border:1px solid rgba(120,160,189,.18);background:rgba(120,160,189,.08);color:#8aa7bd;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-judge b{display:inline-flex;align-items:center;height:14px;padding:0 4px;border-radius:4px;background:rgba(255,255,255,.08);color:#cdefff;font-size:10px;line-height:1;flex:0 0 auto}
.dialx-judge.high{border-color:rgba(50,220,133,.28);background:rgba(50,220,133,.12);color:#54e99b}
.dialx-judge.mid{border-color:rgba(243,188,54,.28);background:rgba(243,188,54,.12);color:#f7ca61}
.dialx-judge.low{border-color:rgba(255,91,117,.28);background:rgba(255,91,117,.12);color:#ff8fa0}
.dialx-judge-status{display:block;flex-basis:100%;margin-top:2px;color:#7898b1;font-size:11px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialx-judge-status.ok{color:#54e99b}.dialx-judge-status.done{color:#35d987}.dialx-judge-status.warn{color:#f7ca61}.dialx-judge-status.wait{color:#8fc9ff}.dialx-judge-status.empty{color:#6f879a}
.dialx-final-grade{display:inline-flex;align-items:center;justify-content:center;width:68px;height:28px;padding:0;border-radius:999px;border:1px solid rgba(120,160,189,.2);background:rgba(120,160,189,.1);color:#8aa7bd;font-size:12px;font-weight:900;white-space:nowrap}
.dialx-final-grade.hot{border-color:rgba(50,220,133,.34);background:rgba(50,220,133,.14);color:#54e99b}
.dialx-final-grade.warm{border-color:rgba(37,198,223,.34);background:rgba(37,198,223,.13);color:#5be5f7}
.dialx-final-grade.watch{border-color:rgba(243,188,54,.34);background:rgba(243,188,54,.14);color:#f7ca61}
.dialx-final-grade.cold{border-color:rgba(255,91,117,.34);background:rgba(255,91,117,.14);color:#ff8fa0}
.dialx-final-grade.none{border-color:rgba(120,160,189,.18);background:rgba(120,160,189,.07);color:#7898b1}
.dialx-call{height:36px;min-width:76px;border:0;border-radius:8px;background:var(--dx-cyan);color:#07141c;font-weight:900;cursor:pointer}
.dialx-call:hover{transform:translateY(-1px);filter:brightness(1.06)}
.dialx-empty{padding:42px;text-align:center;color:#7b98af}
.dialx-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 0 0;color:#83a4bd}.dialx-pageinfo{font-size:13px}
@media(max-width:1100px){.dialx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dialx-searchline{align-items:flex-start;flex-direction:column}.dialx-tools{width:100%}.dialx-search,.dialx-sort{width:100%}.dialx-filterline{grid-template-columns:1fr 1fr}.dialx-result-count{margin-left:0;width:100%;justify-self:start}.dialx-table-card{overflow-x:auto}.dialx-table{min-width:1180px}}

/* 电邀中心字号压缩：对齐地推管理的扫描密度 */
.dialx-page{font-size:13px}
.dialx-page h1{font-size:22px;line-height:1.2}
.dialx-page h1 small{font-size:12px}
.dialx-kpis{gap:12px;margin:12px 0 14px}
.dialx-kpi{min-height:68px;padding:11px 14px;border-radius:9px}
.dialx-kpi strong{font-size:23px;margin:3px 0 1px}
.dialx-kpi span{font-size:11px}
.dialx-alert{gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:10px}
.dialx-alert-icon{font-size:18px}
.dialx-alert strong{font-size:14px}
.dialx-alert-pill{height:24px;padding:0 10px;font-size:12px}
.dialx-toolbar{padding:12px;margin-bottom:12px}
.dialx-chipline{gap:8px;margin-bottom:10px}
.dialx-chip{height:30px;gap:6px;padding:0 10px;font-size:12px}
.dialx-chip b{min-width:20px;height:20px;font-size:11px;padding:0 6px}
.dialx-searchline{gap:10px}
.dialx-tools{gap:8px}
.dialx-search{width:248px;height:34px;font-size:12px;padding:0 10px}
.dialx-select{height:34px;min-width:138px;padding:0 10px;font-size:12px}
.dialx-sort{width:190px}
.dialx-btn{height:34px;padding:0 13px;font-size:12px}
.dialx-filterline{gap:8px;margin-top:10px;padding-top:10px}
.dialx-result-count{font-size:12px}
.dialx-table{font-size:12px}
.dialx-table col.student{width:19%}
.dialx-table col.grade{width:14%}
.dialx-table col.stage{width:10%}
.dialx-table col.note{width:33%}
.dialx-table col.last{width:8%}
.dialx-table col.score{width:8%}
.dialx-table col.action{width:8%}
.dialx-table th{padding:8px 10px;font-size:11px}
.dialx-table td{padding:7px 10px}
.dialx-student-cell{gap:6px}
.dialx-star{width:28px;height:28px;font-size:18px}
.dialx-name{font-size:13px;max-width:132px}
.dialx-sub,.dialx-muted,.dialx-reason{font-size:11px}
.dialx-stage-badge{height:21px;padding:0 7px;font-size:11px;border-radius:6px}
.dialx-note{padding:4px 8px;font-size:12px;border-radius:6px}
.dialx-score{font-size:14px}
.dialx-call{height:32px;min-width:68px;border-radius:7px;font-size:12px}
.dialx-empty{padding:34px;font-size:12px}
/* 通话质量看板 · 主功能区 */
.gcq-page{--gcq-card:#1e2433;--gcq-bg:#141b28;--gcq-line:rgba(255,255,255,.08);--gcq-ink:rgba(255,255,255,.92);--gcq-muted:rgba(255,255,255,.45);--gcq-blue:#20b7d8;--gcq-green:#36c275;--gcq-purple:#8b7cf6;--gcq-yellow:#e2aa38;--gcq-red:#e05252;--gcq-orange:#f0873a}
.gcq-headline{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,rgba(32,183,216,.1),rgba(32,183,216,0));border:1px solid var(--gcq-line);border-left:3px solid var(--gcq-blue);border-radius:12px;padding:12px 16px;margin-bottom:16px;color:var(--gcq-ink);font-size:13px;font-weight:700;line-height:1.6}
.gcq-headline span{flex:0 0 auto;color:var(--gcq-blue);background:rgba(32,183,216,.13);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:900}
.gcq-headline div{flex:1;min-width:0}
.gcq-headline button{flex:0 0 auto}
.gcq-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.gcq-kpi{background:var(--gcq-card);border:1px solid var(--gcq-line);border-radius:15px;padding:15px 17px;position:relative;overflow:hidden;min-height:126px}
.gcq-kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gcq-blue)}
.gcq-kpi.green:before{background:var(--gcq-green)}.gcq-kpi.purple:before{background:var(--gcq-purple)}.gcq-kpi.yellow:before{background:var(--gcq-yellow)}
.gcq-kh{display:flex;align-items:center;justify-content:space-between}.gcq-kh span{font-size:12px;color:var(--gcq-muted);font-weight:800}.gcq-kh i{font-style:normal;opacity:.45}
.gcq-kv{font-size:29px;line-height:1;font-weight:900;color:var(--gcq-ink);margin:10px 0 4px}.gcq-kv small{font-size:13px;color:var(--gcq-muted);margin-left:2px}
.gcq-ka{font-size:11.5px;color:var(--gcq-muted);line-height:1.5}.gcq-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.gcq-chip.amber{background:rgba(226,170,56,.16);color:var(--gcq-yellow)}
.gcq-break{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.05);display:flex;gap:5px}.gcq-break div{flex:1;text-align:center}.gcq-break b{display:block;font-size:13px;color:var(--gcq-ink)}.gcq-break span{font-size:10px;color:rgba(255,255,255,.34)}.gcq-break .warn b{color:var(--gcq-orange)}
.gcq-card{background:var(--gcq-card);border:1px solid var(--gcq-line);border-radius:15px;padding:16px 18px;margin-bottom:16px}.gcq-card-title{font-size:14px;font-weight:900;color:var(--gcq-ink);display:flex;align-items:center;gap:8px}.gcq-card-title span{margin-left:auto;color:rgba(255,255,255,.34);font-size:11px;font-weight:700}.gcq-desc{font-size:11.5px;color:rgba(255,255,255,.34);line-height:1.6;margin:4px 0 14px}.gcq-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.gcq-trend{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:6px}.gcq-tcol{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}.gcq-tbars{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%}.gcq-tbars b{width:14px;border-radius:4px 4px 0 0}.gcq-tbars .calls{background:rgba(32,183,216,.45)}.gcq-tbars .score{background:var(--gcq-purple)}.gcq-tbars .empty{opacity:.25}.gcq-tcol.sparse{opacity:.55}.gcq-tcol.sparse .score,.gcq-tcol.sparse .calls{background:repeating-linear-gradient(45deg,rgba(139,124,246,.55),rgba(139,124,246,.55) 3px,transparent 3px,transparent 6px)}.gcq-tcol em{font-style:normal;color:rgba(255,255,255,.55);font-size:10px;font-weight:800}.gcq-tcol span{font-size:10px;color:rgba(255,255,255,.32);font-weight:700}.gcq-legend{display:flex;gap:16px;margin-top:8px;color:var(--gcq-muted);font-size:11px;font-weight:700}.gcq-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.gcq-legend .calls{background:rgba(32,183,216,.5)}.gcq-legend .score{background:var(--gcq-purple)}.gcq-legend .sparse{background:repeating-linear-gradient(45deg,rgba(139,124,246,.65),rgba(139,124,246,.65) 2px,transparent 2px,transparent 4px)}
.gcq-abil{display:grid;gap:12px}.gcq-ab{display:grid;grid-template-columns:86px 1fr 46px;gap:10px;align-items:center}.gcq-ab div{font-size:12px;color:var(--gcq-ink);font-weight:800}.gcq-ab span{height:9px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}.gcq-ab i{display:block;height:100%;border-radius:999px}.gcq-ab b{text-align:right;font-size:12px}.gcq-warn,.gcq-note{margin-top:12px;background:var(--gcq-bg);border:1px solid var(--gcq-line);border-radius:10px;padding:10px 12px;color:var(--gcq-muted);font-size:11px;line-height:1.65}.gcq-warn{border-left:3px solid var(--gcq-orange)}.gcq-warn b{color:var(--gcq-orange)}
.gcq-dist{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.gcq-dbox{background:var(--gcq-bg);border:1px solid var(--gcq-line);border-radius:11px;padding:12px;text-align:center}.gcq-dbox b{display:block;font-size:22px;color:var(--gcq-ink)}.gcq-dbox span{font-size:11px;color:var(--gcq-muted);font-weight:800}.gcq-dbox.hi b{color:var(--gcq-green)}.gcq-dbox.mid b{color:var(--gcq-yellow)}.gcq-dbox.lo b{color:var(--gcq-red)}.gcq-dbox.na b{color:rgba(255,255,255,.36)}
.gcq-issues{display:grid;gap:9px;margin-top:14px}.gcq-issues p{font-size:11px;color:rgba(255,255,255,.34);font-weight:800;margin:0}.gcq-issues div{display:grid;grid-template-columns:18px minmax(0,1fr) 120px 34px;gap:8px;align-items:center}.gcq-issues em{font-style:normal;font-size:11px;color:rgba(255,255,255,.34);font-weight:900}.gcq-issues span{font-size:12px;color:var(--gcq-ink);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcq-issues b{height:7px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}.gcq-issues b i{display:block;height:100%;background:var(--gcq-orange)}.gcq-issues strong{font-size:11px;color:var(--gcq-muted);text-align:right}
.gcq-table-wrap{overflow:auto}.gcq-rank{width:100%;border-collapse:collapse}.gcq-rank th{font-size:11px;color:rgba(255,255,255,.34);font-weight:800;text-align:right;padding:0 9px 9px;white-space:nowrap}.gcq-rank th.l,.gcq-rank td.l{text-align:left}.gcq-rank td{font-size:12.5px;color:var(--gcq-ink);font-weight:800;text-align:right;padding:10px 9px;border-top:1px solid rgba(255,255,255,.05);white-space:nowrap}.gcq-rank tr.idle{opacity:.58}.gcq-rno{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:rgba(255,255,255,.07);font-size:10px}.gcq-rno.top{background:var(--gcq-yellow);color:#2a1f06}.gcq-who{display:inline-flex;align-items:center;gap:8px}.gcq-who i{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,var(--gcq-blue),var(--gcq-purple));font-style:normal;font-size:11px;color:#041b24}.gcq-qdist{display:inline-flex;gap:2px}.gcq-qdist i{width:15px;height:8px;border-radius:2px;background:rgba(255,255,255,.08)}.gcq-muted{color:rgba(255,255,255,.32)}.gcq-sug{font-size:11px;font-weight:900;border-radius:7px;padding:4px 9px}.gcq-sug.do{background:rgba(32,183,216,.14);color:var(--gcq-blue)}.gcq-sug.warn{background:rgba(240,135,58,.15);color:var(--gcq-orange)}.gcq-sug.idle{background:rgba(224,82,82,.14);color:var(--gcq-red)}.gcq-sug.ok{background:rgba(54,194,117,.14);color:var(--gcq-green)}
.gcq-review-list{display:grid;gap:9px}.gcq-review{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--gcq-bg);border:1px solid var(--gcq-line);border-radius:11px;padding:11px 13px}.gcq-review.done{opacity:.35}.gcq-review .sc{width:38px;height:38px;border-radius:10px;background:rgba(224,82,82,.14);color:var(--gcq-red);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900}.gcq-review .info{min-width:0}.gcq-review .info b{display:block;font-size:13px;color:var(--gcq-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcq-review .info span{display:block;font-size:11px;color:var(--gcq-muted);line-height:1.5;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcq-review .ops{display:flex;gap:6px}.gcq-review button,.gcq-review a{border:1px solid var(--gcq-line);background:#242b3d;color:var(--gcq-ink);border-radius:8px;padding:7px 10px;font-size:11px;font-weight:900;text-decoration:none;cursor:pointer}.gcq-review .pri{background:var(--gcq-blue);border-color:var(--gcq-blue);color:#04222a}
.gcq-hours{display:grid;gap:8px}.gcq-hour{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--gcq-bg);border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:9px 12px}.gcq-hour b{display:block;font-size:12px;color:var(--gcq-ink)}.gcq-hour span{font-size:11px;color:var(--gcq-muted)}.gcq-hour p{height:7px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin:0}.gcq-hour p i{display:block;height:100%;border-radius:999px}.gcq-hour em{font-style:normal;font-size:10px;font-weight:900;padding:3px 8px;border-radius:999px;white-space:nowrap}.gcq-hour em.ref{background:rgba(226,170,56,.14);color:var(--gcq-yellow)}.gcq-hour em.no{background:rgba(224,82,82,.13);color:var(--gcq-red)}.gcq-hour em.rec{background:rgba(54,194,117,.15);color:var(--gcq-green)}
.gcq-empty{background:var(--gcq-bg);border:1px solid var(--gcq-line);border-radius:10px;padding:18px;text-align:center;color:var(--gcq-muted);font-size:12px;line-height:1.6}.gcq-empty.small{padding:12px;margin-top:12px}
@media(max-width:1100px){.gcq-kpis,.gcq-grid2{grid-template-columns:1fr 1fr}.gcq-headline{align-items:flex-start;flex-direction:column}.gcq-trend{overflow:auto}.gcq-tcol{min-width:42px}}
@media(max-width:760px){.gcq-kpis,.gcq-grid2{grid-template-columns:1fr}.gcq-review{grid-template-columns:34px minmax(0,1fr)}.gcq-review .ops{grid-column:2}.gcq-hour{grid-template-columns:1fr}.gcq-card-title{align-items:flex-start;flex-direction:column}.gcq-card-title span{margin-left:0}.gcq-dist{grid-template-columns:repeat(2,1fr)}}

/* FINAL sidebar restore: keep the original dark nav and active light sweep. */
.sidebar{
  width:var(--sidebar-w)!important;
  flex:0 0 var(--sidebar-w)!important;
  background:linear-gradient(180deg,#07111d 0%,#04101a 52%,#050b14 100%)!important;
  border-right:1px solid rgba(32,183,216,.12)!important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.02)!important;
  color:var(--ink)!important;
  overflow:visible!important;
}
.sidebar-brand{
  background:linear-gradient(135deg,rgba(15,31,46,.96),rgba(6,17,29,.98))!important;
  border-bottom:1px solid rgba(32,183,216,.16)!important;
  padding:18px 14px 16px!important;
}
.sidebar-brand .brand-mark,
.brand-mark{
  background:linear-gradient(135deg,#f1ad61,#d48b47)!important;
  color:#261400!important;
  box-shadow:0 10px 24px rgba(212,139,71,.22)!important;
}
.sidebar-brand-text strong{
  color:#f4fbff!important;
  font-weight:900!important;
}
.sidebar-brand-text span{
  color:#82a7c2!important;
}
.sidebar-body{
  background:transparent!important;
  padding:12px 8px!important;
}
.nav-group-label{
  color:#6f95af!important;
  letter-spacing:.5px!important;
  text-transform:none!important;
  padding:12px 10px 6px!important;
}
.nav-btn{
  position:relative!important;
  isolation:isolate!important;
  min-height:40px!important;
  padding:9px 10px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:#78a2bf!important;
  overflow:hidden!important;
}
.nav-btn::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-2!important;
  border-radius:inherit!important;
  background:transparent!important;
}
.nav-btn::after{
  content:""!important;
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:-70%!important;
  z-index:-1!important;
  width:55%!important;
  border-radius:inherit!important;
  background:linear-gradient(105deg,transparent,rgba(70,218,255,.28),transparent)!important;
  opacity:0!important;
  transform:skewX(-18deg)!important;
  pointer-events:none!important;
}
.nav-btn:hover{
  color:#dff5ff!important;
  background:rgba(32,183,216,.07)!important;
  border-color:rgba(32,183,216,.08)!important;
}
.nav-btn.active{
  color:#48dfff!important;
  font-weight:900!important;
  border-color:rgba(32,183,216,.18)!important;
  background:linear-gradient(90deg,rgba(32,183,216,.17),rgba(32,183,216,.06))!important;
  box-shadow:inset 3px 0 0 #20b7d8,0 0 24px rgba(32,183,216,.08)!important;
}
.nav-btn.active::after{
  opacity:1!important;
  animation:navLightSweep 2.8s ease-in-out infinite!important;
}
.nav-btn[data-page="students"].active,
.nav-btn[data-page="classes"].active,
.nav-btn[data-page="teach"].active,
.nav-btn[data-page="learning"].active{
  color:#c9c3ff!important;
  background:linear-gradient(90deg,rgba(139,124,246,.17),rgba(139,124,246,.06))!important;
  border-color:rgba(139,124,246,.18)!important;
  box-shadow:inset 3px 0 0 #8b7cf6,0 0 24px rgba(139,124,246,.08)!important;
}
.nav-btn[data-page="finance"].active,
.nav-btn[data-page="revenue"].active{
  color:#86efac!important;
  background:linear-gradient(90deg,rgba(54,194,117,.15),rgba(54,194,117,.05))!important;
  border-color:rgba(54,194,117,.18)!important;
  box-shadow:inset 3px 0 0 #36c275,0 0 24px rgba(54,194,117,.08)!important;
}
.nav-icon,.nav-emoji-icon{
  color:currentColor!important;
  opacity:.95!important;
}
.nav-label{
  color:currentColor!important;
}
.nav-badge{
  background:#ff5b75!important;
  color:#fff!important;
  box-shadow:0 0 0 2px #06101a!important;
}
.sidebar-divider{
  background:rgba(32,183,216,.12)!important;
}
.sidebar-foot{
  background:linear-gradient(180deg,rgba(6,17,29,.8),rgba(4,11,20,.96))!important;
  border-top:1px solid rgba(32,183,216,.14)!important;
}
.user-card{
  border:1px solid rgba(32,183,216,.13)!important;
  border-radius:12px!important;
  padding:8px!important;
  background:rgba(10,25,38,.7)!important;
}
.user-avatar{
  background:linear-gradient(135deg,#20b7d8,#8b7cf6)!important;
  color:#031018!important;
  border-color:rgba(255,255,255,.12)!important;
}
.user-info strong{color:#f4fbff!important}
.user-info span{color:#75a0bb!important}
.project-toggle{
  background:#07111c!important;
  border-color:rgba(32,183,216,.12)!important;
}
.project-toggle button.active{
  color:#031018!important;
  background:#20b7d8!important;
  border-color:#20b7d8!important;
  box-shadow:0 0 18px rgba(32,183,216,.22)!important;
}
.sidebar-toggle-btn{
  background:rgba(32,183,216,.08)!important;
  border-color:rgba(32,183,216,.2)!important;
  color:#bcefff!important;
}
.sidebar.collapsed{
  width:var(--sidebar-mini)!important;
  flex-basis:var(--sidebar-mini)!important;
}
.sidebar.collapsed .nav-btn::after{
  content:attr(data-title)!important;
  inset:auto!important;
  left:calc(100% + 10px)!important;
  top:50%!important;
  width:auto!important;
  bottom:auto!important;
  z-index:90!important;
  opacity:0!important;
  transform:translateY(-50%)!important;
  padding:7px 10px!important;
  border:1px solid rgba(32,183,216,.18)!important;
  border-radius:10px!important;
  background:#091623!important;
  color:#edf6ff!important;
  box-shadow:var(--shadow)!important;
  animation:none!important;
  white-space:nowrap!important;
}
.sidebar.collapsed .nav-btn:hover::after{
  opacity:1!important;
  transform:translate(2px,-50%)!important;
}
@keyframes navLightSweep{
  0%{left:-70%;opacity:0}
  18%{opacity:1}
  55%{left:118%;opacity:.9}
  100%{left:118%;opacity:0}
}

/* FINAL sidebar glass skin from sidebar_glass.css + active light flow. */
.sidebar{
  background:
    radial-gradient(120% 90% at 85% -10%,#3b2d6e 0%,#1b2140 38%,#0f1730 70%,#0b1226 100%)!important;
  border-right:1px solid rgba(120,150,255,.14)!important;
  position:sticky!important;
}
.sidebar::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  z-index:0!important;
  background:
    radial-gradient(55% 30% at 15% 8%,rgba(64,201,255,.13),transparent 70%),
    radial-gradient(50% 26% at 90% 55%,rgba(148,102,255,.12),transparent 70%)!important;
  box-shadow:inset 1px 0 0 rgba(255,255,255,.06),inset -1px 0 0 rgba(255,255,255,.03)!important;
}
.sidebar-brand,
.sidebar-body,
.sidebar-foot{
  position:relative!important;
  z-index:1!important;
}
.sidebar-brand{
  background:transparent!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.sidebar-brand .brand-mark,
.brand-mark{
  background:linear-gradient(135deg,#3ec7f0,#8b6cff)!important;
  color:#fff!important;
  border:none!important;
  box-shadow:0 6px 18px rgba(105,124,255,.45)!important;
}
.sidebar-brand-text strong{
  background:linear-gradient(90deg,#e8f4ff,#c9d4ff)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  letter-spacing:1px!important;
}
.sidebar-brand-text span{
  color:#7d8bb8!important;
  letter-spacing:1px!important;
}
.nav-group-label{
  color:#6f7ea8!important;
  letter-spacing:3px!important;
}
.nav-group-link:hover,
.nav-group-link.active{
  color:#9fd8ff!important;
}
.nav-btn{
  color:#b9c3dd!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  padding:9.5px 11px!important;
  background:transparent!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.nav-btn .nav-icon>svg,
.nav-btn .nav-emoji-icon{
  filter:saturate(.85)!important;
  opacity:.9!important;
}
.nav-btn:hover{
  background:rgba(255,255,255,.055)!important;
  color:#eef2ff!important;
}
.nav-btn.active,
.nav-btn[data-page="students"].active,
.nav-btn[data-page="classes"].active,
.nav-btn[data-page="teach"].active,
.nav-btn[data-page="learning"].active,
.nav-btn[data-page="finance"].active,
.nav-btn[data-page="revenue"].active,
.nav-btn[data-page="settings"].active{
  background:linear-gradient(92deg,rgba(62,199,240,.22),rgba(139,108,255,.20))!important;
  border:1px solid rgba(120,180,255,.35)!important;
  color:#fff!important;
  box-shadow:0 4px 20px rgba(80,120,255,.25),inset 0 0 18px rgba(120,160,255,.08)!important;
}
.nav-btn.active .nav-icon>svg,
.nav-btn.active .nav-emoji-icon{
  filter:none!important;
  opacity:1!important;
}
.nav-btn:not(.collapsed)::after,
.nav-btn.active::after{
  content:""!important;
  position:absolute!important;
  top:-30%!important;
  bottom:-30%!important;
  left:-75%!important;
  z-index:-1!important;
  width:52%!important;
  border-radius:inherit!important;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),rgba(95,220,255,.24),transparent)!important;
  opacity:0!important;
  transform:skewX(-18deg)!important;
  pointer-events:none!important;
}
.nav-btn.active::after{
  opacity:1!important;
  animation:sidebarGlassFlow 3.1s ease-in-out infinite!important;
}
.nav-icon{
  position:static!important;
}
.nav-badge{
  background:linear-gradient(135deg,#ff5f78,#ff8f5f)!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(255,95,120,.45)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  left:auto!important;
  right:10px!important;
}
.sidebar.collapsed .nav-icon{
  position:relative!important;
}
.sidebar.collapsed .nav-badge{
  top:-7px!important;
  right:-8px!important;
  transform:none!important;
}
.sidebar-divider{
  background:linear-gradient(90deg,transparent,rgba(140,170,255,.18),transparent)!important;
  margin:8px 10px!important;
}
.sidebar-foot{
  border-top:1px solid rgba(255,255,255,.08)!important;
  background:rgba(9,14,32,.35)!important;
}
.user-card{
  border:none!important;
  background:transparent!important;
  padding:0!important;
}
.project-toggle{
  background:rgba(9,14,32,.5)!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:11px!important;
}
.project-toggle button{
  color:#8e9ac0!important;
  border-radius:9px!important;
}
.project-toggle button:hover{
  color:#dfe6ff!important;
  background:rgba(255,255,255,.05)!important;
}
.project-toggle button.active{
  background:linear-gradient(135deg,#3ec7f0,#8b6cff)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 3px 10px rgba(105,124,255,.5)!important;
}
.user-avatar{
  border-radius:12px!important;
  background:linear-gradient(135deg,#3ec7f0,#8b6cff)!important;
  border:none!important;
  color:#fff!important;
  box-shadow:0 4px 12px rgba(105,124,255,.4)!important;
}
.user-info strong{color:#f0f3ff!important}
.user-info span{color:#8390b8!important}
.sidebar-toggle-btn{
  border:1px solid rgba(255,255,255,.12)!important;
  background:rgba(255,255,255,.05)!important;
  color:#aab6d8!important;
}
.sidebar-toggle-btn:hover{
  border-color:rgba(120,180,255,.45)!important;
  color:#fff!important;
  background:rgba(120,160,255,.12)!important;
}
.sidebar.collapsed .nav-btn.active{
  box-shadow:0 3px 14px rgba(80,120,255,.28)!important;
}
.sidebar.collapsed .nav-btn::after{
  content:attr(data-title)!important;
  position:absolute!important;
  left:calc(100% + 10px)!important;
  top:50%!important;
  bottom:auto!important;
  width:auto!important;
  z-index:90!important;
  opacity:0!important;
  transform:translateY(-50%)!important;
  padding:7px 10px!important;
  border:1px solid rgba(120,180,255,.22)!important;
  border-radius:10px!important;
  background:#091623!important;
  color:#edf6ff!important;
  box-shadow:var(--shadow)!important;
  animation:none!important;
  white-space:nowrap!important;
}
.sidebar.collapsed .nav-btn:hover::after{
  opacity:1!important;
  transform:translate(2px,-50%)!important;
}
@keyframes sidebarGlassFlow{
  0%{left:-75%;opacity:0}
  18%{opacity:.85}
  52%{left:125%;opacity:.75}
  100%{left:125%;opacity:0}
}

/* 招生目标作战台 */
.rg-page{display:flex;flex-direction:column;gap:14px}
.rg-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid rgba(80,132,170,.28);border-radius:10px;background:linear-gradient(135deg,rgba(13,31,49,.96),rgba(16,24,39,.96));box-shadow:0 18px 50px rgba(0,0,0,.18)}
.rg-hero span{display:inline-flex;color:#20d4f4;font-size:12px;font-weight:800;margin-bottom:6px}
.rg-hero h1{margin:0;color:#f4fbff;font-size:28px;line-height:1.2;letter-spacing:0}
.rg-hero p{margin:6px 0 0;color:#8fb3cd;font-size:13px}
.rg-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.rg-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rg-overview article,.rg-panel,.rg-project-card{border:1px solid rgba(93,133,170,.24);background:rgba(16,29,47,.92);border-radius:10px}
.rg-overview article{padding:15px 16px;min-height:112px}
.rg-overview span,.rg-card-head span,.rg-section-head span{color:#93b3c9;font-size:13px}
.rg-overview b{display:block;margin:10px 0 8px;color:#f3f8ff;font-size:30px;line-height:1}
.rg-overview small{display:block;margin-top:7px;color:#7fa4bd}
.rg-overview i,.rg-table-bar,.rg-metric i,.rg-ladder i{display:block;height:7px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.rg-overview u,.rg-table-bar u,.rg-metric u,.rg-ladder u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#20b7d8,#36c275)}
.rg-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rg-project-card{padding:16px;display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center}
.rg-card-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}
.rg-card-head b{color:#f4fbff;font-size:24px}
.rg-ring{width:142px;aspect-ratio:1;border-radius:999px;display:grid;place-items:center;background:conic-gradient(#20b7d8 calc(var(--p)*1%),rgba(255,255,255,.08) 0);position:relative}
.rg-ring::after{content:"";position:absolute;inset:12px;border-radius:inherit;background:#111d2e;border:1px solid rgba(255,255,255,.06)}
.rg-ring strong,.rg-ring small{position:relative;z-index:1;text-align:center}
.rg-ring strong{color:#fff;font-size:28px;line-height:1}
.rg-ring small{display:block;margin-top:4px;color:#8fb3cd;font-size:12px}
.rg-project-card.math .rg-ring{background:conic-gradient(#8b7cf6 calc(var(--p)*1%),rgba(255,255,255,.08) 0)}
.rg-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rg-metric{min-height:82px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035);color:#dcefff;text-align:left;cursor:pointer}
.rg-metric:hover,.rg-ladder button:hover{border-color:rgba(32,183,216,.5);background:rgba(32,183,216,.08)}
.rg-metric span{display:block;color:#8fb3cd;font-size:12px}
.rg-metric b{display:block;margin:7px 0 2px;font-size:22px;color:#fff}
.rg-metric em{display:block;margin-bottom:8px;color:#8fb3cd;font-style:normal;font-size:12px}
.rg-two{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.rg-panel{padding:16px}
.rg-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:14px}
.rg-section-head strong{color:#fff;font-size:18px}
.rg-bottleneck-main{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border-radius:8px;background:rgba(224,82,82,.1);border:1px solid rgba(224,82,82,.22)}
.rg-bottleneck-main b{display:block;color:#ff7474;font-size:24px}
.rg-bottleneck-main p{margin:5px 0 0;color:#bdd2e2}
.rg-ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.rg-ladder button{padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035);color:#dcefff;text-align:left;cursor:pointer}
.rg-ladder span{display:block;color:#8fb3cd;font-size:12px}
.rg-ladder b{display:block;margin:5px 0 7px;color:#fff;font-size:15px}
.rg-milestones{display:grid;gap:10px}
.rg-milestones article{padding:12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.rg-milestones article.done{border-color:rgba(54,194,117,.45);background:rgba(54,194,117,.12)}
.rg-milestones span{display:inline-flex;margin-bottom:6px;color:#20d4f4;font-size:12px;font-weight:800}
.rg-milestones article.done span{color:#49e08c}
.rg-milestones b{display:block;color:#fff}
.rg-milestones p{margin:5px 0 0;color:#8fb3cd}
.rg-table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.06);border-radius:8px}
.rg-table{width:100%;border-collapse:collapse;min-width:780px}
.rg-table th,.rg-table td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06);color:#dcefff;text-align:left;white-space:nowrap}
.rg-table th{background:rgba(32,183,216,.08);color:#9dc1d8;font-size:12px}
.rg-table td small{display:block;margin-top:3px;color:#7fa4bd;font-weight:400}
.rg-table tr.current{background:rgba(32,183,216,.08)}
.rg-table tr:last-child td{border-bottom:0}
.rg-table-bar{width:120px}
@media (max-width:1100px){
  .rg-overview,.rg-projects,.rg-two{grid-template-columns:1fr}
  .rg-project-card{grid-template-columns:1fr}
  .rg-ring{margin:auto}
  .rg-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .rg-hero{align-items:flex-start;flex-direction:column}
  .rg-hero h1{font-size:22px}
  .rg-overview{grid-template-columns:1fr}
  .rg-metric-grid{grid-template-columns:1fr}
}

/* 周边学校渗透率矩阵 */
.sm2-matrix-view{display:none}
.sm2-matrix-view.active{display:block;flex:1;min-width:0;overflow:auto;padding:14px;background:#101827}
.sm2-matrix-shell{display:flex;flex-direction:column;gap:12px}
.sm2-mx-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.sm2-mx-kpis article{min-height:96px;padding:14px;border:1px solid rgba(93,133,170,.22);border-radius:8px;background:rgba(18,31,50,.9)}
.sm2-mx-kpis span{display:block;color:#9bb8cd;font-size:12px}
.sm2-mx-kpis b{display:block;margin:8px 0 4px;color:#f4fbff;font-size:28px;line-height:1}
.sm2-mx-kpis small{color:#7ea0b9}
.sm2-mx-body{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:12px}
.sm2-mx-left,.sm2-mx-center,.sm2-mx-right,.sm2-mx-heat{border:1px solid rgba(93,133,170,.22);border-radius:8px;background:rgba(18,31,50,.9);padding:12px}
.sm2-mx-title{margin-bottom:10px;color:#f4fbff;font-weight:900}
.sm2-mx-rank{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;margin-bottom:8px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035);color:#dcefff;text-align:left;cursor:pointer}
.sm2-mx-rank:hover,.sm2-mx-rank.active{border-color:rgba(32,183,216,.55);background:rgba(32,183,216,.12)}
.sm2-mx-rank span{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e2aa38;color:#04111c;font-weight:900}
.sm2-mx-rank b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm2-mx-rank em{color:#9bb8cd;font-style:normal;font-size:12px}
.sm2-config-wide{width:100%;margin-top:10px;padding:10px;border:1px solid rgba(32,183,216,.35);border-radius:8px;background:rgba(32,183,216,.08);color:#20d4f4;font-weight:800;cursor:pointer}
.sm2-mx-school-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.sm2-mx-school-head h3{margin:0;color:#fff;font-size:26px}
.sm2-mx-school-head p{margin:4px 0 0;color:#8fb3cd}
.sm2-mx-school-head button{padding:8px 12px;border:1px solid rgba(32,183,216,.4);border-radius:8px;background:rgba(32,183,216,.12);color:#20d4f4;cursor:pointer}
.sm2-grade-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sm2-grade-card{padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.035)}
.sm2-grade-card div{display:flex;justify-content:space-between;gap:8px;color:#9bb8cd;font-size:12px}
.sm2-grade-card strong{color:#fff;font-size:16px}
.sm2-grade-card b{display:block;margin:12px 0 4px;color:#fff;font-size:28px}
.sm2-grade-card p{margin:0 0 10px;color:#8fb3cd;font-size:12px}
.sm2-grade-card i{display:block;height:7px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.sm2-grade-card u{display:block;height:100%;border-radius:inherit;background:#20b7d8}
.sm2-grade-card.high u,.sm2-mx-cell.high{background:#36c275}
.sm2-grade-card.mid u,.sm2-mx-cell.mid{background:#20b7d8}
.sm2-grade-card.low u,.sm2-mx-cell.low{background:#e2aa38}
.sm2-grade-card.empty u,.sm2-mx-cell.empty{background:#e05252}
.sm2-grade-card.unset u,.sm2-mx-cell.unset{background:rgba(255,255,255,.08)}
.sm2-mx-cell.leads-only{background:rgba(32,183,216,.18);color:#20d4f4}
.sm2-action-box{padding:12px;border-radius:8px;margin-bottom:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.sm2-action-box b{display:block;margin-bottom:6px;color:#fff}
.sm2-action-box p{margin:0;color:#9bb8cd;line-height:1.6}
.sm2-action-box.good{border-color:rgba(54,194,117,.28);background:rgba(54,194,117,.09)}
.sm2-action-box.warn{border-color:rgba(226,170,56,.28);background:rgba(226,170,56,.08)}
.sm2-action-box.danger{border-color:rgba(224,82,82,.28);background:rgba(224,82,82,.08)}
.sm2-mx-table{overflow:auto;border:1px solid rgba(255,255,255,.06);border-radius:8px}
.sm2-mx-table table{width:100%;min-width:980px;border-collapse:collapse}
.sm2-mx-table th,.sm2-mx-table td{padding:8px;border-bottom:1px solid rgba(255,255,255,.06);color:#dcefff;text-align:center}
.sm2-mx-table th{background:rgba(32,183,216,.08);color:#9dc1d8;font-size:12px}
.sm2-mx-table td:first-child,.sm2-mx-table th:first-child{text-align:left;position:sticky;left:0;background:#142238;z-index:1}
.sm2-mx-cell{width:100%;min-width:72px;height:42px;border:0;border-radius:4px;color:#fff;font-weight:900;cursor:pointer}
.sm2-mx-cell small{display:block;margin-top:2px;color:rgba(255,255,255,.72);font-weight:500;font-size:10px}
.sm2-mx-heat p{margin:10px 0 0;color:#8fb3cd;font-size:12px}
@media (max-width:1200px){
  .sm2-mx-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sm2-mx-body{grid-template-columns:1fr}
}
@media (max-width:760px){
  .sm2-mx-kpis,.sm2-grade-card-grid{grid-template-columns:1fr}
}
/* ── 产品中心 ───────────────────────────────── */
.product-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.product-kpis article{background:linear-gradient(145deg,rgba(24,41,65,.96),rgba(17,29,48,.96));border:1px solid rgba(115,151,190,.18);border-radius:14px;padding:17px 18px;display:flex;flex-direction:column;gap:5px}
.product-kpis span{font-size:12px;color:var(--muted)}.product-kpis b{font-size:25px;color:#fff}.product-kpis small{font-size:11px;color:#71829a}
.product-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.product-level-card{background:rgba(15,27,45,.92);border:1px solid rgba(255,255,255,.09);border-top:3px solid #20b7d8;border-radius:13px;padding:14px;min-height:168px}
.product-level-card.purple{border-top-color:#8b7cf6}.product-level-card.green{border-top-color:#36c275}.product-level-card.amber{border-top-color:#e2aa38}
.product-level-card header{display:flex;justify-content:space-between;align-items:center}.product-level-card header span{font-weight:700;color:#fff}.product-level-card header b{font-size:12px;padding:2px 8px;border-radius:10px;background:rgba(32,183,216,.15);color:#7ee9fa}
.product-level-card p{font-size:11px;color:var(--muted);margin:6px 0 10px;min-height:30px}.product-level-card>div{display:grid;gap:6px}
.product-level-card button{border:0;background:rgba(255,255,255,.045);color:#dfe9f5;border-radius:8px;padding:8px 9px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.product-level-card button:hover{background:rgba(255,255,255,.09)}.product-level-card button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-level-card button em{font-size:10px;color:#7f91a8;font-style:normal;margin-left:5px}.product-level-card small{color:#71829a}
.product-table-panel{overflow:hidden}.product-table-panel table strong{display:block;color:#eef5fd}.product-table-panel table small{display:block;margin-top:3px;color:#71829a;font-size:10px}
.product-level-pill,.product-status{display:inline-flex;padding:4px 8px;border-radius:10px;font-size:11px;background:rgba(32,183,216,.14);color:#78e8f8;white-space:nowrap}.product-level-pill.purple{background:rgba(139,124,246,.15);color:#c7c0ff}.product-level-pill.green{background:rgba(54,194,117,.15);color:#8ceab3}.product-level-pill.amber{background:rgba(226,170,56,.15);color:#ffd57f}.product-status{background:rgba(255,255,255,.07);color:#9cabbd}.product-status.on{background:rgba(54,194,117,.14);color:#8ceab3}
.product-detail-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}.product-detail-head h2{margin:8px 0 4px}.product-detail-head p{color:var(--muted);font-size:12px}
.product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.product-detail-grid article{border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.035);padding:13px}.product-detail-grid span{display:block;color:#7f91a8;font-size:11px;margin-bottom:6px}.product-detail-grid b{display:block;color:#edf5ff;font-size:13px}.product-detail-grid p{color:var(--muted);font-size:11px;margin:5px 0 0}
.product-copy{margin-top:12px;border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:14px}.product-copy h3{font-size:12px;margin:0 0 5px;color:#8fa3bb}.product-copy p{margin:0 0 12px;color:#e1eaf4;line-height:1.65}.product-copy p:last-child{margin-bottom:0}.product-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.product-mini-stats span{background:rgba(255,255,255,.04);padding:10px;border-radius:9px;color:#879ab1;font-size:11px}.product-mini-stats b{display:block;color:#fff;font-size:16px;margin-top:3px}
.product-form-section{font-size:14px;margin:18px 0 10px;color:#dfe9f5}.enroll-product-preview{margin:12px 0;padding:13px;border:1px solid rgba(32,183,216,.25);background:rgba(32,183,216,.07);border-radius:10px}.enroll-product-preview strong,.enroll-product-preview span{display:block}.enroll-product-preview strong{color:#84eafa}.enroll-product-preview span{font-size:11px;color:#91a4ba;margin-top:4px}.enroll-product-preview p{font-size:12px;color:#d8e3ef;margin:7px 0 0}
.payment-config-layout{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start}.payment-qr-box{width:180px;min-height:180px;border:1px dashed rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.035);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7f91a8;text-align:center}.payment-qr-box img{width:158px;height:158px;object-fit:contain;border-radius:8px;background:#fff;padding:5px}.payment-qr-box small{margin-top:7px}.payment-upload-row{display:flex;gap:10px;align-items:center;margin-top:12px}.payment-upload-row input{flex:1}.enroll-payment-box{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;margin:12px 0;padding:14px;border:1px solid rgba(54,194,117,.25);background:rgba(54,194,117,.07);border-radius:12px}.enroll-payment-box img{width:150px;height:150px;object-fit:contain;background:#fff;padding:5px;border-radius:8px}.enroll-payment-box strong{color:#99efbb;font-size:15px}.enroll-payment-box p{color:#bac9d8;font-size:12px;line-height:1.6}.enroll-payment-box b{font-size:22px;color:#fff}.payment-confirm-check{display:flex!important;align-items:center;gap:8px;margin:12px 0;color:#dce7f2!important}.payment-confirm-check input{width:auto!important}
@media(max-width:1000px){.product-kpis,.product-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.product-kpis,.product-ladder,.product-detail-grid,.product-mini-stats,.payment-config-layout,.enroll-payment-box{grid-template-columns:1fr}.product-detail-head{flex-direction:column}.product-table-panel .table-wrap{overflow-x:auto}.payment-qr-box{width:100%}.enroll-payment-box img{margin:auto}}

/* ── 诊断推荐与报价 ─────────────────────────── */
.lead-conversion-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.lead-conversion-head h2{margin:0 0 5px}.lead-conversion-head p{margin:0;color:var(--muted);font-size:12px}
.diagnostic-summary{display:grid;grid-template-columns:130px 1fr 1.1fr;gap:14px;border:1px solid rgba(32,183,216,.2);background:rgba(32,183,216,.055);border-radius:13px;padding:14px}.diagnostic-total{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgba(255,255,255,.08)}.diagnostic-total span{font-size:11px;color:#8ca0b7}.diagnostic-total b{font-size:42px;color:#7ce9fa;line-height:1.15}.diagnostic-total em{font-style:normal;font-size:12px;color:#dce8f5}.diagnostic-bars{display:grid;gap:7px}.diagnostic-score-row{display:grid;grid-template-columns:62px 1fr 28px;gap:7px;align-items:center;font-size:10px;color:#9cadc0}.diagnostic-score-row i{height:5px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}.diagnostic-score-row i b{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#8b7cf6)}.diagnostic-score-row strong{text-align:right;color:#dce7f2}.diagnostic-copy p{font-size:11px;color:#b6c4d3;margin:0 0 7px}.diagnostic-copy strong{color:#eef5fd}
.recommended-product-card{margin-top:12px;padding:15px 16px;border:1px solid rgba(54,194,117,.24);background:linear-gradient(135deg,rgba(54,194,117,.1),rgba(32,183,216,.05));border-radius:13px;position:relative}.recommended-product-card>span{font-size:10px;color:#82dba7}.recommended-product-card h3{margin:5px 0 3px;color:#fff}.recommended-product-card p{margin:0;color:#91a5bb;font-size:11px}.recommended-product-card button{position:absolute;right:14px;top:20px}.recommended-product-card small{color:#e2aa38}
.conversion-empty{text-align:center;border:1px dashed rgba(255,255,255,.15);border-radius:13px;padding:35px 20px}.conversion-empty strong{font-size:17px}.conversion-empty p{color:var(--muted);font-size:12px}.quote-history{margin-top:15px}.quote-history-item{display:grid;grid-template-columns:1fr 90px 65px auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:9px;margin-top:7px}.quote-history-item.active{border-color:rgba(54,194,117,.25)}.quote-history-item div strong,.quote-history-item div span{display:block}.quote-history-item div span{font-size:10px;color:#7f91a8}.quote-history-item>b{color:#fff}.quote-history-item em{font-style:normal;color:#8da0b6;font-size:11px}
.diagnostic-form label input[type=number]{font-variant-numeric:tabular-nums}.quote-preview{margin:12px 0;padding:13px;border-radius:10px;background:rgba(139,124,246,.08);border:1px solid rgba(139,124,246,.2)}.quote-preview strong,.quote-preview span{display:block}.quote-preview strong{color:#cbc5ff}.quote-preview span{font-size:11px;color:#8fa2b7;margin-top:3px}.quote-preview p{font-size:11px;color:#d7e1ec;margin:7px 0 0}
@media(max-width:720px){.lead-conversion-head{flex-direction:column}.diagnostic-summary{grid-template-columns:1fr}.diagnostic-total{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:12px}.recommended-product-card button{position:static;margin-top:10px}.quote-history-item{grid-template-columns:1fr auto}.quote-history-item em{display:none}}

/* ── 产品交付与续费 ─────────────────────────── */
.delivery-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:15px}.delivery-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.delivery-kpis span{display:block;color:#8396ac;font-size:11px}.delivery-kpis b{display:block;font-size:25px;color:#fff;margin-top:5px}
.renewal-panel,.delivery-panel{margin-top:14px}.renewal-list{display:grid;gap:8px}.renewal-opportunity{display:grid;grid-template-columns:minmax(190px,1.2fr) 80px 80px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:11px 13px;border:1px solid rgba(226,170,56,.16);background:rgba(226,170,56,.035);border-radius:10px}.renewal-opportunity.urgent{border-color:rgba(224,82,82,.25);background:rgba(224,82,82,.045)}.renewal-student strong,.renewal-student span,.renewal-reason span,.renewal-reason small{display:block}.renewal-student strong{color:#eef5fd}.renewal-student span,.renewal-reason small{font-size:10px;color:#7f91a8;margin-top:3px}.renewal-opportunity>div>span{font-size:10px;color:#8396ac}.renewal-opportunity>div>b{display:block;color:#fff;font-size:18px}.renewal-reason span{color:#ffd178;font-size:11px}
.delivery-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.delivery-student-card{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:11px;padding:13px}.delivery-student-card header{display:flex;justify-content:space-between;align-items:flex-start}.delivery-student-card header strong,.delivery-student-card header span{display:block}.delivery-student-card header span{font-size:10px;color:#7f91a8;margin-top:3px}.delivery-student-card header em{font-size:10px;color:#e2aa38;font-style:normal}.delivery-student-card header em.done{color:#36c275}.delivery-progress{display:grid;grid-template-columns:1fr auto auto auto;gap:9px;align-items:center;margin:11px 0}.delivery-progress i{height:6px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}.delivery-progress i b{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#36c275)}.delivery-progress span{font-size:9px;color:#8295aa}.delivery-tasks{display:flex;gap:6px;flex-wrap:wrap}.delivery-task{border:1px solid rgba(139,124,246,.18);background:rgba(139,124,246,.07);color:#cfcaff;border-radius:8px;padding:6px 8px;cursor:pointer;text-align:left}.delivery-task:hover{background:rgba(139,124,246,.15)}.delivery-task.done{border-color:rgba(54,194,117,.18);background:rgba(54,194,117,.07);color:#8ceab3}.delivery-task span{font-size:10px}.delivery-task b{font-size:9px;margin-left:5px}.delivery-no-task{font-size:10px;color:#71829a}
@media(max-width:1050px){.delivery-kpis{grid-template-columns:repeat(3,1fr)}.renewal-opportunity{grid-template-columns:1fr 70px 70px}.renewal-reason,.renewal-opportunity .actions{grid-column:1/-1}.delivery-card-grid{grid-template-columns:1fr}}
@media(max-width:620px){.delivery-kpis{grid-template-columns:repeat(2,1fr)}.renewal-opportunity{grid-template-columns:1fr 1fr}.renewal-student{grid-column:1/-1}.delivery-progress{grid-template-columns:1fr 1fr}.delivery-progress i{grid-column:1/-1}}

/* ── 转介绍经营 ─────────────────────────────── */
.referral-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:15px}.referral-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.referral-kpis span{display:block;color:#8396ac;font-size:11px}.referral-kpis b{display:block;font-size:24px;color:#fff;margin-top:5px}.referral-program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.referral-program-card{border:1px solid rgba(32,183,216,.16);background:rgba(32,183,216,.035);border-radius:11px;padding:14px}.referral-program-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.referral-program-card header span,.referral-program-card h3,.referral-program-card p{display:block;margin:0}.referral-program-card header span{font-size:10px;color:#7791a8}.referral-program-card h3{font-size:15px;color:#eef7ff;margin-top:4px}.referral-program-card p{font-size:11px;color:#9caec0;margin:11px 0;min-height:32px}.referral-program-progress{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.referral-program-progress i{height:6px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}.referral-program-progress i b{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#36c275)}.referral-program-progress span{font-size:9px;color:#8095aa}.referral-program-card footer{display:flex;gap:14px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);font-size:10px;color:#8194a9}.referral-program-card footer b{color:#fff}.referral-two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:14px 0}.referral-guide ol{margin:10px 0 12px;padding-left:20px;color:#a9bacb;font-size:12px;line-height:1.9}.referral-guide p{color:#758aa0;font-size:11px}.referral-reward-status{display:inline-block;padding:3px 7px;border-radius:10px;background:rgba(255,255,255,.06);color:#aab8c6;font-size:10px}.referral-reward-status.due{background:rgba(226,170,56,.12);color:#ffd178}.referral-reward-status.done{background:rgba(54,194,117,.12);color:#8ceab3}.table-wrap td small{display:block;color:#73869b;font-size:9px;margin-top:3px}
@media(max-width:1100px){.referral-kpis{grid-template-columns:repeat(3,1fr)}.referral-program-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.referral-kpis{grid-template-columns:repeat(2,1fr)}.referral-program-grid,.referral-two-col{grid-template-columns:1fr}}

/* ── 产品年度经营分析 ───────────────────────── */
.year-switch{height:34px;border:1px solid rgba(255,255,255,.12);background:#102238;color:#dceafa;border-radius:8px;padding:0 10px}.product-analysis-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:15px}.product-analysis-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.product-analysis-kpis span,.product-analysis-kpis small{display:block;color:#8396ac;font-size:10px}.product-analysis-kpis b{display:block;font-size:22px;color:#fff;margin:6px 0 3px}.product-month-chart{display:grid;grid-template-columns:repeat(12,minmax(42px,1fr));gap:8px;height:215px;align-items:end;padding:12px 4px 0}.product-month{text-align:center;min-width:0}.product-month>div{height:125px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid rgba(255,255,255,.08)}.product-month>div b{display:block;width:62%;min-height:3px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#20b7d8,#3767df);box-shadow:0 0 16px rgba(32,183,216,.16)}.product-month span,.product-month strong,.product-month small{display:block}.product-month span{font-size:9px;color:#75899d;margin-top:5px}.product-month strong{font-size:11px;color:#e8f3ff}.product-month small{font-size:8px;color:#74889e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-level-analysis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.product-level-analysis article{padding:15px;border:1px solid rgba(139,124,246,.14);background:rgba(139,124,246,.035);border-radius:11px}.product-level-analysis span{display:block;color:#a9a2f5;font-size:11px}.product-level-analysis b{display:block;color:#fff;font-size:20px;margin:7px 0}.product-level-analysis div{display:flex;gap:12px;flex-wrap:wrap}.product-level-analysis small{color:#7f91a5;font-size:9px}.product-action-panel{margin-top:14px}.product-action-panel>div:last-child{display:grid;gap:7px}.product-analysis-action{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid rgba(226,170,56,.14);background:rgba(226,170,56,.035);border-radius:10px;padding:11px 13px;color:inherit;cursor:pointer}.product-analysis-action.high{border-color:rgba(224,82,82,.2);background:rgba(224,82,82,.04)}.product-analysis-action em{font-style:normal;font-size:9px;color:#ffd178;border:1px solid rgba(226,170,56,.2);padding:3px 5px;border-radius:7px}.product-analysis-action div b,.product-analysis-action div span{display:block}.product-analysis-action div b{font-size:12px;color:#eaf3fc}.product-analysis-action div span{font-size:10px;color:#7f92a7;margin-top:3px}.product-analysis-action>i{font-style:normal;font-size:10px;color:#63cee4}.product-name-link{border:0;background:none;padding:0;color:#77d6e9;font-weight:600;cursor:pointer}.product-life-tag{display:inline-block;padding:3px 7px;border-radius:9px;font-size:9px;background:rgba(255,255,255,.06);color:#a9b8c8}.product-life-tag.life-增长期{background:rgba(54,194,117,.12);color:#8ceab3}.product-life-tag.life-待验证,.product-life-tag.life-衰退关注{background:rgba(224,82,82,.11);color:#ff9898}.product-life-tag.life-稳定期{background:rgba(32,183,216,.11);color:#72d9ee}.product-health{display:grid;grid-template-columns:58px auto;gap:6px;align-items:center}.product-health i{height:5px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}.product-health i b{display:block;height:100%;background:linear-gradient(90deg,#e05252,#e2aa38,#36c275)}.product-health span{font-size:9px;color:#a9b9c8}
@media(max-width:1100px){.product-analysis-kpis{grid-template-columns:repeat(3,1fr)}.product-level-analysis{grid-template-columns:repeat(2,1fr)}.product-month-chart{overflow-x:auto;grid-template-columns:repeat(12,70px)}}
@media(max-width:680px){.product-analysis-kpis,.product-level-analysis{grid-template-columns:repeat(2,1fr)}.product-analysis-action{grid-template-columns:auto 1fr}.product-analysis-action>i{grid-column:2}}

/* ── 产品版本保护与审核 ─────────────────────── */
.governance-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.governance-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.governance-kpis span{display:block;color:#8396ac;font-size:10px}.governance-kpis b{display:block;color:#fff;font-size:24px;margin-top:6px}.governance-rule{margin-bottom:14px;border-color:rgba(32,183,216,.16)}.governance-rule h3{margin:0 0 6px;color:#dff7fc}.governance-rule p{margin:0;color:#8fa4b9;font-size:11px}.governance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.governance-card{border:1px solid rgba(255,255,255,.08);background:rgba(15,31,48,.78);border-radius:11px;padding:14px}.governance-card.pending{border-color:rgba(226,170,56,.22);background:rgba(226,170,56,.035)}.governance-card header{display:flex;justify-content:space-between;gap:10px}.governance-card header span,.governance-card header p{font-size:9px;color:#7f92a7}.governance-card header h3{font-size:14px;color:#edf5fd;margin:4px 0}.governance-card header em{font-size:9px;color:#ffd178;font-style:normal}.governance-card header em.done{color:#8ceab3}.governance-card header em.reject{color:#ff9898}.governance-change{margin-top:11px;padding:10px;border-radius:8px;background:rgba(255,255,255,.025)}.governance-change b,.governance-change span,.governance-change p{display:block}.governance-change b{font-size:11px;color:#dbe8f5}.governance-change span,.governance-change p{font-size:9px;color:#7e91a6;margin-top:5px}.governance-card footer{display:flex;justify-content:flex-end;margin-top:10px;color:#71859a;font-size:9px}
@media(max-width:850px){.governance-kpis{grid-template-columns:repeat(3,1fr)}.governance-grid{grid-template-columns:1fr}}@media(max-width:560px){.governance-kpis{grid-template-columns:repeat(2,1fr)}}

/* ── 经营滚动复盘 ───────────────────────────── */
.weekly-review-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.weekly-review-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.weekly-review-kpis span,.weekly-review-kpis small{display:block;color:#8396ac;font-size:9px}.weekly-review-kpis b{display:block;color:#fff;font-size:18px;margin:6px 0}.weekly-review-funnel{display:flex;align-items:center;gap:7px;overflow-x:auto}.weekly-review-funnel article{min-width:125px;flex:1;padding:13px;border-radius:10px;background:rgba(32,183,216,.035);border:1px solid rgba(32,183,216,.13)}.weekly-review-funnel article.risk{background:rgba(224,82,82,.04);border-color:rgba(224,82,82,.18)}.weekly-review-funnel article span,.weekly-review-funnel article small{display:block;font-size:9px;color:#8094a8}.weekly-review-funnel article b{display:block;color:#edf7ff;font-size:15px;margin:5px 0}.weekly-review-funnel>i{color:#50657b;font-style:normal}.weekly-review-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin:14px 0}.weekly-history-chart{display:grid;grid-template-columns:repeat(8,1fr);gap:9px;height:180px;align-items:end}.weekly-history-chart article{text-align:center}.weekly-history-chart article>div{height:125px;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid rgba(255,255,255,.08)}.weekly-history-chart article i,.weekly-history-chart article b{display:block;width:12px;min-height:2px;border-radius:4px 4px 0 0}.weekly-history-chart article i{background:#415269}.weekly-history-chart article b{background:#20b7d8}.weekly-history-chart article span,.weekly-history-chart article small{display:block;font-size:8px;color:#74889c;margin-top:4px}.weekly-carry p{font-size:11px;color:#8296aa}.weekly-carry>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.weekly-carry>div span{padding:12px;border-radius:9px;background:rgba(139,124,246,.06);color:#8e9fb2;font-size:9px}.weekly-carry>div b{display:block;color:#d8d3ff;font-size:20px;margin-top:4px}.weekly-review-actions>div:last-child{display:grid;gap:7px}.weekly-review-actions button{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;padding:11px;border:1px solid rgba(226,170,56,.14);background:rgba(226,170,56,.03);border-radius:9px;color:inherit;cursor:pointer}.weekly-review-actions button em{font-size:9px;color:#ffd178;font-style:normal}.weekly-review-actions button b,.weekly-review-actions button span{display:block}.weekly-review-actions button b{font-size:11px;color:#eaf3fc}.weekly-review-actions button span{font-size:9px;color:#7e91a6;margin-top:3px}.weekly-review-actions button>i{font-size:9px;color:#64cee5;font-style:normal}.weekly-review-record{margin-top:14px}.weekly-review-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.weekly-review-notes article{padding:12px;background:rgba(255,255,255,.025);border-radius:9px}.weekly-review-notes span{font-size:9px;color:#68cfe4}.weekly-review-notes p{font-size:11px;color:#a8bacb;white-space:pre-wrap;margin:6px 0 0}
@media(max-width:1100px){.weekly-review-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.weekly-review-kpis{grid-template-columns:repeat(2,1fr)}.weekly-review-grid,.weekly-review-notes{grid-template-columns:1fr}.weekly-review-funnel{align-items:stretch}.weekly-review-funnel>i{display:none}}

/* ── 数据治理中心 ───────────────────────────── */
.data-quality-hero{display:grid;grid-template-columns:180px 1fr;gap:14px;margin-bottom:14px}.quality-score{display:flex;align-items:baseline;justify-content:center;gap:4px;flex-wrap:wrap;padding:18px;border-radius:13px;background:linear-gradient(135deg,rgba(32,183,216,.12),rgba(55,103,223,.08));border:1px solid rgba(32,183,216,.18)}.quality-score span{width:100%;text-align:center;color:#8ca3b8;font-size:10px}.quality-score b{font-size:42px;color:#72d9ee}.quality-score small{color:#6f8499}.quality-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.quality-kpis article{padding:15px;border-radius:11px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.quality-kpis span{display:block;color:#8195aa;font-size:9px}.quality-kpis b{display:block;color:#fff;font-size:23px;margin-top:7px}.data-quality-filter{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.quality-categories{display:flex;flex-wrap:wrap;gap:6px}.quality-categories button{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);color:#8195aa;border-radius:15px;padding:5px 9px;font-size:9px;cursor:pointer}.quality-categories button.active{border-color:rgba(32,183,216,.25);background:rgba(32,183,216,.1);color:#75daee}.data-quality-filter select{height:32px;background:#102238;color:#dceafa;border:1px solid rgba(255,255,255,.1);border-radius:8px}.quality-high td{background:rgba(224,82,82,.018)}.quality-severity{display:inline-block;padding:3px 6px;border-radius:7px;background:rgba(226,170,56,.1);color:#ffd178;font-size:9px}.quality-high .quality-severity{background:rgba(224,82,82,.12);color:#ff9898}
@media(max-width:900px){.data-quality-hero{grid-template-columns:1fr}.quality-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:580px){.quality-kpis{grid-template-columns:repeat(2,1fr)}.data-quality-filter{align-items:flex-start;flex-direction:column}}

/* ── 经营预警中心 ───────────────────────────── */
.alert-center-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.alert-center-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.alert-center-kpis span{display:block;color:#8396ac;font-size:10px}.alert-center-kpis b{display:block;color:#fff;font-size:24px;margin-top:6px}.alert-filter{margin-bottom:14px}.alert-filter>div{display:flex;gap:6px;flex-wrap:wrap}.alert-filter button{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);color:#8195aa;border-radius:15px;padding:5px 9px;font-size:9px;cursor:pointer}.alert-filter button.active{border-color:rgba(224,82,82,.24);background:rgba(224,82,82,.09);color:#ffaaaa}.alert-danger td{background:rgba(224,82,82,.025)}.alert-level{display:inline-block;padding:3px 6px;border-radius:7px;background:rgba(226,170,56,.12);color:#ffd178;font-size:9px}.alert-danger .alert-level{background:rgba(224,82,82,.13);color:#ff9898}.alert-status{display:inline-block;padding:3px 7px;border-radius:8px;font-size:9px}.alert-status.open{background:rgba(226,170,56,.1);color:#ffd178}.alert-status.closed{background:rgba(54,194,117,.1);color:#8ceab3}
@media(max-width:850px){.alert-center-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.alert-center-kpis{grid-template-columns:repeat(2,1fr)}}

/* ── 渠道归因与预算规划 ─────────────────────── */
.channel-total-input{width:130px;height:34px;border:1px solid rgba(255,255,255,.12);background:#102238;color:#dceafa;border-radius:8px;padding:0 10px}.channel-plan-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:14px}.channel-plan-kpis article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.channel-plan-kpis span{display:block;color:#8396ac;font-size:9px}.channel-plan-kpis b{display:block;color:#fff;font-size:21px;margin-top:6px}.channel-rule{margin-bottom:14px;border-color:rgba(32,183,216,.15)}.channel-rule h3{margin:0 0 6px;color:#dff6fb}.channel-rule p{font-size:10px;color:#8499ad;margin:0}.channel-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.channel-plan-card{padding:14px;border:1px solid rgba(255,255,255,.08);background:rgba(15,31,48,.78);border-radius:11px}.channel-plan-card header{display:flex;justify-content:space-between;gap:10px}.channel-plan-card header span{font-size:9px;color:#8f83e9}.channel-plan-card header h3{font-size:15px;color:#eef6fe;margin:4px 0}.channel-plan-card header em{font-size:9px;color:#79d8eb;font-style:normal}.channel-mini-funnel{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:12px 0}.channel-mini-funnel span{font-size:9px;color:#8093a7}.channel-mini-funnel b{display:block;color:#fff;font-size:15px;margin-top:3px}.channel-mini-funnel i{font-style:normal;color:#4e6175}.channel-economics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px;background:rgba(255,255,255,.025);border-radius:8px}.channel-economics span{font-size:8px;color:#778b9e}.channel-economics b{display:block;color:#dce9f5;font-size:10px;margin-top:3px}.channel-plan-card footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;margin-top:11px}.channel-plan-card footer label{font-size:9px;color:#7f92a7}.channel-plan-card footer label b{display:block;color:#dfeaf5;margin-top:4px}.channel-plan-card footer input{display:block;width:100%;margin-top:4px;height:31px;background:#102238;color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:0 8px}.channel-plan-card footer small{grid-column:1/-1;color:#71869a}.channel-advice-panel{margin-top:14px}.channel-advice-panel>div:last-child{display:grid;gap:7px}.channel-advice{display:flex;gap:10px;padding:11px;border-radius:9px;background:rgba(255,255,255,.025)}.channel-advice em{font-size:9px;color:#ffd178;font-style:normal}.channel-advice b,.channel-advice span{display:block}.channel-advice b{font-size:11px;color:#e8f2fb}.channel-advice span{font-size:9px;color:#7f92a7;margin-top:3px}
@media(max-width:1050px){.channel-plan-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.channel-plan-kpis{grid-template-columns:repeat(2,1fr)}.channel-plan-grid{grid-template-columns:1fr}}

/* ── 重复线索安全治理 ───────────────────────── */
.duplicate-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.duplicate-summary article{padding:15px;border-radius:12px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.duplicate-summary span,.duplicate-summary small{display:block;color:#8396ac;font-size:9px}.duplicate-summary b{display:block;color:#fff;font-size:22px;margin:6px 0}.duplicate-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.duplicate-group-card{padding:14px;border:1px solid rgba(32,183,216,.16);background:rgba(15,31,48,.82);border-radius:12px}.duplicate-group-card header{display:flex;justify-content:space-between;gap:10px}.duplicate-group-card header span,.duplicate-group-card header p{font-size:9px;color:#7e92a7}.duplicate-group-card header h3{font-size:16px;color:#eef7ff;margin:4px 0}.duplicate-group-card header em{font-style:normal;font-size:9px;color:#8ceab3}.duplicate-record-list{display:grid;gap:7px;margin:12px 0}.duplicate-record-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02);border-radius:9px;cursor:pointer}.duplicate-record-list label.recommended{border-color:rgba(54,194,117,.22);background:rgba(54,194,117,.04)}.duplicate-record-list b,.duplicate-record-list span,.duplicate-record-list small{display:block}.duplicate-record-list b{font-size:11px;color:#e5eef7}.duplicate-record-list span,.duplicate-record-list small{font-size:9px;color:#788ca0;margin-top:3px}.duplicate-record-list i{font-style:normal;font-size:8px;color:#8ceab3}.duplicate-group-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.duplicate-group-card footer span{font-size:9px;color:#71869a}
@media(max-width:850px){.duplicate-group-grid{grid-template-columns:1fr}}@media(max-width:540px){.duplicate-summary{grid-template-columns:1fr}.duplicate-group-card footer{align-items:flex-start;flex-direction:column}}

/* ── 活动与投放 ─────────────────────────────── */
.campaign-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:15px}.campaign-kpis article{padding:14px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08);border-radius:11px}.campaign-kpis span{display:block;font-size:10px;color:#8093aa}.campaign-kpis b{display:block;color:#fff;font-size:21px;margin-top:5px}.campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.campaign-card{border:1px solid rgba(255,255,255,.09);background:rgba(13,27,44,.95);border-radius:13px;padding:14px}.campaign-card header{display:flex;justify-content:space-between;gap:12px}.campaign-card header span{font-size:10px;color:#6fd9e8}.campaign-card header h3{margin:4px 0;color:#f1f6fc}.campaign-card header p{margin:0;color:#7e91a8;font-size:10px}.campaign-card header em{font-style:normal;font-size:10px;color:#8294a9}.campaign-card header em.on{color:#7ce6a8}.campaign-funnel{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:14px 0;padding:10px;background:rgba(255,255,255,.03);border-radius:9px}.campaign-funnel div{text-align:center}.campaign-funnel b,.campaign-funnel span{display:block}.campaign-funnel b{color:#fff;font-size:16px}.campaign-funnel span{font-size:8px;color:#8497ad}.campaign-funnel i{font-style:normal;color:#3c526b}.campaign-economics{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.campaign-economics span{font-size:8px;color:#75889e}.campaign-economics b{display:block;color:#dfe8f2;font-size:11px;margin-top:3px}.campaign-economics b.good{color:#67dda0}.campaign-economics b.bad{color:#ef8181}.campaign-card footer{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.campaign-qr-modal{text-align:center}.campaign-qr-modal>p{color:var(--muted)}#campaignQrBox{width:260px;min-height:260px;margin:15px auto;padding:10px;background:#fff;border-radius:12px}#campaignQrBox img,#campaignQrBox canvas{margin:auto}.campaign-qr-modal>input{width:100%;font-size:11px}
@media(max-width:1100px){.campaign-kpis{grid-template-columns:repeat(3,1fr)}.campaign-grid{grid-template-columns:1fr}}@media(max-width:600px){.campaign-kpis{grid-template-columns:repeat(2,1fr)}.campaign-economics{grid-template-columns:repeat(3,1fr)}.campaign-funnel{overflow-x:auto;justify-content:flex-start}.campaign-funnel div{min-width:55px}}

/* ── 校长经营决策中心 ───────────────────────── */
.decision-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.decision-kpis article{padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:linear-gradient(145deg,rgba(17,35,54,.98),rgba(11,24,40,.98))}.decision-kpis span{font-size:11px;color:#8093a9}.decision-kpis b{display:block;color:#fff;font-size:26px;margin-top:5px}.decision-hero{display:grid;grid-template-columns:260px 1fr;gap:12px;margin-bottom:14px}.decision-bottleneck{padding:18px;border-radius:14px;background:linear-gradient(145deg,rgba(224,82,82,.14),rgba(226,170,56,.07));border:1px solid rgba(224,82,82,.23)}.decision-bottleneck>span{font-size:10px;color:#ef9696}.decision-bottleneck h2{margin:7px 0;color:#fff}.decision-bottleneck div{display:flex;align-items:baseline;gap:10px}.decision-bottleneck div b{font-size:32px;color:#ff8585}.decision-bottleneck div i{font-style:normal;font-size:10px;color:#b5c3d1}.decision-bottleneck p{font-size:10px;color:#9bacc0;line-height:1.6;margin-bottom:0}.decision-funnel{display:flex;align-items:center;justify-content:center;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(13,27,44,.96);overflow-x:auto}.decision-funnel button{min-width:82px;border:0;border-radius:10px;background:rgba(255,255,255,.045);color:#dce8f5;padding:12px 8px;cursor:pointer}.decision-funnel button span,.decision-funnel button b{display:block}.decision-funnel button span{font-size:10px;color:#8296ad}.decision-funnel button b{font-size:22px;margin-top:4px}.decision-funnel-arrow{font-size:9px;color:#5d7690;min-width:55px;text-align:center}.decision-plan>p{font-size:10px;color:#8194aa}.decision-plan-chain{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.decision-plan-chain button{position:relative;border:1px solid rgba(32,183,216,.14);border-radius:10px;background:rgba(32,183,216,.05);padding:12px;color:#dce8f5;cursor:pointer}.decision-plan-chain button:hover{background:rgba(32,183,216,.11)}.decision-plan-chain em{position:absolute;left:6px;top:6px;font-style:normal;font-size:8px;color:#4f6a84}.decision-plan-chain span,.decision-plan-chain b{display:block}.decision-plan-chain span{font-size:10px;color:#7f93aa}.decision-plan-chain b{font-size:20px;margin-top:4px}.decision-actions{margin-top:14px}.decision-action{width:100%;display:grid;grid-template-columns:45px minmax(170px,.7fr) 1.4fr auto;gap:10px;align-items:center;border:0;border-top:1px solid rgba(255,255,255,.06);background:transparent;color:#dce7f2;padding:11px 5px;text-align:left;cursor:pointer}.decision-action:first-child{border-top:0}.decision-action:hover{background:rgba(255,255,255,.03)}.decision-action em{font-size:9px;font-style:normal;color:#ffcd77}.decision-action b{font-size:12px}.decision-action span{font-size:10px;color:#8093a8}.decision-action i{font-size:10px;font-style:normal;color:#64d8e9}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.decision-grid table{font-size:11px}
@media(max-width:1050px){.decision-hero{grid-template-columns:1fr}.decision-plan-chain{grid-template-columns:repeat(3,1fr)}.decision-grid{grid-template-columns:1fr}}@media(max-width:620px){.decision-kpis{grid-template-columns:repeat(2,1fr)}.decision-funnel{justify-content:flex-start}.decision-plan-chain{grid-template-columns:repeat(2,1fr)}.decision-action{grid-template-columns:40px 1fr}.decision-action span,.decision-action i{grid-column:2}}

/* ── 任务执行中心 ───────────────────────────── */
.task-date-picker{max-width:145px}.task-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 1.3fr;gap:10px;margin-bottom:14px}.task-kpis article{padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(15,31,48,.94)}.task-kpis span{display:block;color:#8295ab;font-size:10px}.task-kpis b{display:block;color:#fff;font-size:23px;margin-top:4px}.task-kpis .overall i{display:block;height:5px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden;margin-top:6px}.task-kpis .overall u{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#36c275);text-decoration:none}.task-center-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:14px}.task-priority-group{margin-bottom:14px}.task-priority-group>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.task-priority-group>header h3{font-size:13px;margin:0;color:#dce8f5}.task-priority-group>header span{font-size:10px;color:#8194aa}.task-priority-group>div{display:grid;gap:7px}.execution-task{display:grid;grid-template-columns:28px minmax(0,1fr) 90px 75px;gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(255,255,255,.08);background:rgba(13,27,44,.95);border-radius:11px}.execution-task.urgent{border-left:3px solid #e05252}.execution-task.done{opacity:.6}.task-check{width:23px;height:23px;border-radius:7px;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:#70e1a0;cursor:pointer}.execution-task.done .task-check{border-color:rgba(54,194,117,.35);background:rgba(54,194,117,.12)}.task-main>div{display:flex;gap:7px}.task-main>div span,.task-main>div em{font-size:8px;font-style:normal;color:#6fdbe9}.task-main>div em{color:#d9ad59}.task-main h3{font-size:12px;color:#eef5fd;margin:3px 0}.task-main p{font-size:9px;color:#7f92a8;margin:0}.task-progress{display:flex;align-items:center;gap:7px;margin-top:7px}.task-progress i{height:4px;flex:1;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.task-progress i b{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#8b7cf6)}.task-progress span{font-size:8px;color:#73869c}.task-owner span,.task-owner b{display:block;text-align:center}.task-owner span{font-size:10px;color:#d4dfeb}.task-owner b{font-size:9px;color:#7890a7;margin-top:3px}.task-actions>span{font-size:10px;color:#65d897}.team-task-progress{display:flex;align-items:center;gap:6px}.team-task-progress i{width:65px;height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.team-task-progress i b{display:block;height:100%;background:#36c275}.team-task-progress span{font-size:9px}.task-rule-note{margin-top:12px;padding:14px;border:1px solid rgba(32,183,216,.14);border-radius:11px;background:rgba(32,183,216,.04)}.task-rule-note h3{font-size:12px;margin:0 0 6px;color:#7be5f4}.task-rule-note p{font-size:10px;color:#8295aa;line-height:1.7;margin:0}
@media(max-width:1050px){.task-kpis{grid-template-columns:repeat(3,1fr)}.task-center-layout{grid-template-columns:1fr}}@media(max-width:650px){.task-kpis{grid-template-columns:repeat(2,1fr)}.execution-task{grid-template-columns:26px 1fr}.task-owner,.task-actions{grid-column:2;text-align:left}.task-owner span,.task-owner b{display:inline;text-align:left;margin-right:8px}.task-actions{margin-top:3px}}
.monthly-rhythm-panel{margin-bottom:14px!important;border-color:rgba(43,196,223,.22)!important;background:radial-gradient(circle at 92% 5%,rgba(43,196,223,.09),transparent 30%),rgba(13,27,44,.96)!important}.monthly-rhythm-panel .panel-head{align-items:center}.monthly-rhythm-panel .panel-head h3{margin:0;color:#edf8ff}.monthly-rhythm-panel .panel-head p{margin:4px 0 0;color:#7790a6;font-size:9px}.monthly-rhythm-summary{text-align:right}.monthly-rhythm-summary b,.monthly-rhythm-summary span{display:block}.monthly-rhythm-summary b{color:#64ddea;font-size:18px}.monthly-rhythm-summary span{color:#7d92a7;font-size:9px}.monthly-rhythm-progress{height:5px;margin:-4px 0 12px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.07)}.monthly-rhythm-progress i,.monthly-rhythm-progress b{display:block;height:100%}.monthly-rhythm-progress b{background:linear-gradient(90deg,#2bc4df,#8978ff,#43d18b)}.monthly-rhythm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.monthly-rhythm-grid>.empty{grid-column:1/-1}.monthly-rhythm-grid>.empty .btn-primary{display:block;margin:10px auto 0}.monthly-rhythm-task{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.075);border-radius:11px;background:rgba(7,20,34,.58)}.monthly-rhythm-task.urgent{border-left:3px solid #2bc4df}.monthly-rhythm-task.done{opacity:.6}.monthly-rhythm-task.done .task-check{border-color:rgba(54,194,117,.35);background:rgba(54,194,117,.12)}.monthly-rhythm-task-main>span{color:#5ed8e8;font-size:8px;font-weight:800}.monthly-rhythm-task-main h3{margin:3px 0;color:#edf5fc;font-size:11px}.monthly-rhythm-task-main p{margin:0;color:#7d91a6;font-size:9px;line-height:1.5}.monthly-rhythm-task-main footer{display:flex;gap:8px;align-items:center;margin-top:7px}.monthly-rhythm-task-main footer b,.monthly-rhythm-task-main footer em,.monthly-rhythm-task-main footer i{font-size:8px;font-style:normal}.monthly-rhythm-task-main footer b{color:#d6e3ef}.monthly-rhythm-task-main footer em{color:#e8b65d}.monthly-rhythm-task-main footer i{padding:2px 5px;border-radius:6px;background:rgba(255,255,255,.06);color:#8398ac}.monthly-rhythm-task>.btn-ghost{white-space:nowrap}
.monthly-rhythm-task .task-check{padding:0;background:transparent;font-family:inherit}
@media(max-width:900px){.monthly-rhythm-grid{grid-template-columns:1fr}}@media(max-width:560px){.monthly-rhythm-task{grid-template-columns:24px 1fr}.monthly-rhythm-task>.btn-ghost{grid-column:2;justify-self:start}.monthly-rhythm-task-main footer{flex-wrap:wrap}}
.task-check.locked{cursor:default;color:#60758d}

/* ── 年度经营规划 ───────────────────────────── */
.annual-goal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:14px}.annual-goal-kpis article{padding:16px;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(145deg,rgba(17,35,54,.98),rgba(10,23,39,.98))}.annual-goal-kpis span{font-size:10px;color:#8194aa}.annual-goal-kpis b{display:block;color:#fff;font-size:23px;margin-top:5px}.annual-confidence{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:center;padding:16px;border:1px solid rgba(32,183,216,.18);border-radius:13px;background:rgba(32,183,216,.045);margin-bottom:14px}.annual-confidence h3{margin:0 0 5px;color:#dff7fb;font-size:14px}.annual-confidence p,.annual-confidence small{font-size:10px;color:#8498ae;line-height:1.6}.annual-confidence>small{grid-column:1/-1}.confidence-mix i{display:flex;height:9px;border-radius:5px;overflow:hidden;background:rgba(255,255,255,.08)}.confidence-mix i b{background:#20b7d8}.confidence-mix i u{background:#8b7cf6;text-decoration:none}.confidence-mix span{display:inline-block;width:49%;font-size:9px;color:#8497ad;margin-top:5px}.annual-rate-model,.annual-school-context,.annual-phases{margin-bottom:14px}.annual-rate-model>.section-title,.annual-school-context>.section-title,.annual-phases>.section-title{font-size:13px;color:#dce8f5;margin-bottom:8px}.annual-rate-model>div{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.annual-rate-model article{padding:12px;border-radius:11px;border:1px solid rgba(255,255,255,.08);background:rgba(13,27,44,.95)}.annual-rate-model article>span{font-size:11px;color:#dbe6f2}.annual-rate-model article>div{display:flex;justify-content:space-between;align-items:center;margin-top:7px}.annual-rate-model small{font-size:8px;color:#778ba2}.annual-rate-model b{font-size:11px;color:#aebdcd}.annual-rate-model .blend{border-top:1px solid rgba(255,255,255,.07);padding-top:6px}.annual-rate-model .blend b{color:#69e0f0;font-size:14px}.annual-school-context>div{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.annual-school-context article{padding:10px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}.annual-school-context span{font-size:8px;color:#778ba2}.annual-school-context b{display:block;color:#fff;font-size:14px;margin-top:4px}.annual-advice{margin-bottom:14px}.annual-advice>.panel-head+div{display:grid;gap:7px}.annual-advice article{display:grid;grid-template-columns:48px 1fr;gap:9px;align-items:start;padding:10px;border-top:1px solid rgba(255,255,255,.06)}.annual-advice article.high{border-left:3px solid #e05252}.annual-advice em{font-style:normal;font-size:9px;color:#edbd67}.annual-advice h3{font-size:11px;margin:0;color:#e6eef7}.annual-advice p{font-size:9px;color:#7f93a9;margin:4px 0 0;line-height:1.6}.annual-phases>div{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.annual-phases article{border:1px solid rgba(139,124,246,.15);background:rgba(139,124,246,.045);border-radius:11px;padding:12px}.annual-phases header span{font-size:8px;color:#9e94e9}.annual-phases header h3{font-size:13px;color:#eeeaff;margin:4px 0 9px}.annual-phases article>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.annual-phases article>div span{font-size:8px;color:#8295aa}.annual-phases article>div b{display:block;color:#e2eaf4;font-size:11px}.annual-months,.annual-weeks{margin-top:14px}.annual-months td:first-child b,.annual-months td:first-child small{display:block}.annual-months td:first-child small{font-size:8px;color:#7c8fa5}.season-bar{display:flex;align-items:center;gap:5px}.season-bar i{width:65px;height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.season-bar i b{display:block;height:100%;background:linear-gradient(90deg,#20b7d8,#8b7cf6)}.season-bar span{font-size:8px}.annual-weeks tr.current{background:rgba(32,183,216,.08)}
@media(max-width:1100px){.annual-school-context>div{grid-template-columns:repeat(4,1fr)}.annual-rate-model>div,.annual-phases>div{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.annual-goal-kpis{grid-template-columns:repeat(2,1fr)}.annual-confidence{grid-template-columns:1fr}.annual-rate-model>div,.annual-phases>div{grid-template-columns:1fr}.annual-school-context>div{grid-template-columns:repeat(2,1fr)}}

/* 慧校总览：全年运营节奏图 */
.dc-rhythm-panel{position:relative;overflow:hidden;margin:14px 0;padding:20px;border:1px solid rgba(83,184,213,.24);border-radius:16px;background:radial-gradient(circle at 88% 4%,rgba(51,203,224,.12),transparent 27%),linear-gradient(145deg,rgba(14,32,49,.98),rgba(9,23,38,.98));box-shadow:0 18px 40px rgba(0,0,0,.18)}
.dc-rhythm-panel:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#2bc4df,#8978ff,#f0b43b,#43d18b)}
.dc-rhythm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:17px}
.dc-rhythm-kicker{display:block;margin-bottom:5px;color:#39c8df;font-size:10px;font-weight:900;letter-spacing:.12em}
.dc-rhythm-head h3{margin:0;color:#f4f9ff;font-size:20px;letter-spacing:.02em}
.dc-rhythm-head p{margin:6px 0 0;color:#819bb2;font-size:11px;line-height:1.55}
.dc-rhythm-now{min-width:290px;padding:11px 14px;border:1px solid rgba(52,207,225,.24);border-radius:12px;background:rgba(36,189,213,.075);text-align:left;font-family:inherit;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.dc-rhythm-now:hover{transform:translateY(-2px);border-color:rgba(52,207,225,.55);background:rgba(36,189,213,.12)}
.dc-rhythm-now span,.dc-rhythm-now b,.dc-rhythm-now small{display:block}
.dc-rhythm-now span{color:#69d9e9;font-size:9px;font-weight:900}
.dc-rhythm-now b{margin-top:3px;color:#f7fbff;font-size:14px}
.dc-rhythm-now small{margin-top:4px;color:#9bb3c7;font-size:9px}
.dc-rhythm-now em{display:block;margin-top:7px;color:#55d7e8;font-size:9px;font-style:normal;font-weight:900}
.dc-rhythm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dc-rhythm-quarter{--rhythm:#2bc4df;overflow:hidden;border:1px solid rgba(255,255,255,.075);border-radius:13px;background:rgba(8,20,34,.66)}
.dc-rhythm-quarter.tone-2{--rhythm:#8978ff}.dc-rhythm-quarter.tone-3{--rhythm:#f0b43b}.dc-rhythm-quarter.tone-4{--rhythm:#43d18b}
.dc-rhythm-quarter>header{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(90deg,color-mix(in srgb,var(--rhythm) 16%,transparent),transparent)}
.dc-rhythm-quarter>header:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rhythm)}
.dc-rhythm-quarter>header span{grid-row:1/3;color:var(--rhythm);font-size:10px;font-weight:900}
.dc-rhythm-quarter>header b{color:#edf6ff;font-size:12px}.dc-rhythm-quarter>header small{color:#6f899f;font-size:8px}
.dc-rhythm-quarter>div{display:grid}
.dc-rhythm-month{position:relative;display:grid;grid-template-columns:35px 1fr;gap:9px;align-items:center;min-height:70px;padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.055)}
.dc-rhythm-month:last-child{border-bottom:0}
.dc-rhythm-month.current{background:linear-gradient(90deg,color-mix(in srgb,var(--rhythm) 16%,transparent),rgba(255,255,255,.018));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rhythm) 36%,transparent)}
.dc-rhythm-month-no{display:flex;align-items:baseline;justify-content:center;color:var(--rhythm)}
.dc-rhythm-month-no b{font-size:20px;line-height:1}.dc-rhythm-month-no span{margin-left:2px;font-size:8px;font-weight:800}
.dc-rhythm-month h4{margin:0;color:#eaf3fb;font-size:11px;line-height:1.25}.dc-rhythm-month p{margin:4px 0 0;color:#71899e;font-size:8px;line-height:1.45}
.dc-rhythm-month>em{position:absolute;right:7px;top:6px;padding:2px 5px;border-radius:8px;background:var(--rhythm);color:#071521;font-size:7px;font-style:normal;font-weight:900}
.dc-rhythm-panel>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.075)}
.dc-rhythm-lines{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.dc-rhythm-lines>span{display:grid;grid-template-columns:7px auto;column-gap:6px;align-items:center}
.dc-rhythm-lines i{grid-row:1/3;width:6px;height:6px;border-radius:50%;background:#2bc4df;box-shadow:0 0 10px rgba(43,196,223,.7)}
.dc-rhythm-lines b{color:#d9e8f5;font-size:9px}.dc-rhythm-lines small{color:#718a9f;font-size:8px}
@media(max-width:1180px){.dc-rhythm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dc-rhythm-panel{padding:15px}.dc-rhythm-head{display:block}.dc-rhythm-now{min-width:0;margin-top:12px}.dc-rhythm-grid{grid-template-columns:1fr}.dc-rhythm-panel>footer{align-items:flex-start;flex-direction:column}.dc-rhythm-lines{gap:10px 14px}}

/* ── 阶段在读增长目标 ───────────────────────── */
.stock-growth{margin:18px 0;border:1px solid rgba(32,183,216,.23);background:linear-gradient(180deg,rgba(32,183,216,.055),rgba(13,27,44,.96) 55%)}
.stock-growth .panel-head p{margin:5px 0 0;color:#8295aa;font-size:10px}
.stock-growth-chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:10px;padding:18px}
.stock-growth-chain>article{padding:15px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09);display:flex;flex-direction:column;gap:5px}
.stock-growth-chain>article span{color:#8497ad;font-size:10px}.stock-growth-chain>article b{font-size:25px;color:#f1f6fc}.stock-growth-chain>article small{color:#71859c;font-size:9px}
.stock-growth-chain>article.focus{background:rgba(226,170,56,.09);border-color:rgba(226,170,56,.3)}.stock-growth-chain>article.goal{background:rgba(54,194,117,.1);border-color:rgba(54,194,117,.3)}
.stock-growth-chain>i{align-self:center;font-style:normal;font-size:21px;color:#60778e}
.stock-truth-note{margin:0 18px 18px;padding:10px 12px;border-radius:9px;background:rgba(54,194,117,.08);color:#8edcb0;font-size:10px}.stock-truth-note.warn{background:rgba(226,170,56,.09);color:#e9c471}
.stock-funnel-totals{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:0 18px 18px}.stock-funnel-totals span{padding:9px;border-radius:8px;background:rgba(255,255,255,.035);color:#7890a7;font-size:9px;text-align:center}.stock-funnel-totals b{display:block;color:#e8f0f8;font-size:15px;margin-top:3px}
.stock-progress-head{display:flex;justify-content:space-between;align-items:center;margin:0 18px 8px}.stock-progress-head h4{margin:0;color:#dfe9f3;font-size:12px}.stock-progress-head em{font-style:normal;font-size:9px;padding:4px 8px;border-radius:10px;background:rgba(32,183,216,.1);color:#71dfef}.stock-progress-head em.risk,.stock-progress-head em.missed{background:rgba(224,82,82,.13);color:#f28d8d}.stock-progress-head em.watch{background:rgba(226,170,56,.12);color:#edc46e}.stock-progress-head em.ahead,.stock-progress-head em.complete{background:rgba(54,194,117,.12);color:#7be1a5}
.stock-progress-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:0 18px 18px}.stock-progress-grid article{padding:11px;border-radius:9px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025)}.stock-progress-grid span,.stock-progress-grid small{display:block;color:#7c90a6;font-size:9px}.stock-progress-grid b{display:block;color:#eef5fb;font-size:18px;margin:4px 0}.stock-progress-wait{display:flex;gap:12px;align-items:center;margin:0 18px 18px;padding:12px;border-radius:9px;background:rgba(139,124,246,.08);border:1px solid rgba(139,124,246,.15)}.stock-progress-wait b{color:#c9c3ff;font-size:11px;white-space:nowrap}.stock-progress-wait span{color:#8798ad;font-size:9px;line-height:1.6}
.stock-growth td small{display:block;color:#71859c;margin-top:3px}.stock-growth-empty{margin:18px 0;padding:22px;text-align:center}.stock-growth-empty p{color:#8194aa;font-size:11px}
@media(max-width:900px){.stock-growth-chain{grid-template-columns:1fr 1fr}.stock-growth-chain>i{display:none}.stock-funnel-totals{grid-template-columns:repeat(3,1fr)}.stock-progress-grid{grid-template-columns:repeat(2,1fr)}}

/* ── 学生真实数据导入与状态核实 ─────────────── */
.student-import-preview{margin-top:15px}.student-import-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}.student-import-summary article{padding:11px;border-radius:9px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);text-align:center}.student-import-summary span{display:block;color:#8194aa;font-size:9px}.student-import-summary b{display:block;color:#eef5fb;font-size:19px;margin-top:4px}.student-import-summary article.bad b{color:#ef8585}.student-import-preview table small{display:block;color:#71869d;margin-top:3px}.student-import-preview tr.import-error{background:rgba(224,82,82,.06)}.student-import-preview>button{margin-top:12px}.verification-source{padding:13px;margin-bottom:13px;border-radius:10px;background:rgba(32,183,216,.06);border:1px solid rgba(32,183,216,.15)}.verification-source b{color:#7de4f2}.verification-source p{color:#9aabbd;font-size:11px;line-height:1.6;margin:6px 0 0}
.student-verification-dashboard{margin-bottom:14px}.verification-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.verification-kpis article{padding:12px;border-radius:10px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.verification-kpis span{display:block;color:#8093a9;font-size:9px}.verification-kpis b{display:block;color:#eef5fb;font-size:20px;margin-top:4px}.verification-kpis .progress i{display:block;height:4px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.verification-kpis .progress u{display:block;height:100%;background:#36c275;text-decoration:none}.verification-team{margin-top:8px}.verification-callback{padding:12px;margin-bottom:13px;border-radius:10px;background:rgba(226,170,56,.06);border:1px solid rgba(226,170,56,.17)}.verification-callback h3{font-size:11px;color:#e7c06f;margin:0 0 8px}.verification-callback>div{display:grid;grid-template-columns:110px 140px 1fr auto;gap:7px}.verification-callback input,.verification-callback select{min-width:0}
@media(max-width:900px){.verification-kpis{grid-template-columns:repeat(3,1fr)}.verification-callback>div{grid-template-columns:1fr 1fr}.verification-callback button{grid-column:1/-1}}@media(max-width:650px){.student-import-summary,.verification-kpis{grid-template-columns:repeat(2,1fr)}}

/* ── 班级承载盘点 ───────────────────────────── */
.class-capacity-dashboard,.teacher-capacity-dashboard{margin-bottom:14px;padding:14px;border-radius:12px;background:rgba(13,27,44,.96);border:1px solid rgba(255,255,255,.08)}.capacity-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.capacity-head h3{margin:0;color:#e7f0f9;font-size:13px}.capacity-head p{margin:4px 0 0;color:#7890a7;font-size:9px}.capacity-head>span{padding:5px 9px;border-radius:10px;background:rgba(32,183,216,.1);color:#71dceb;font-size:10px}.capacity-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:10px}.capacity-kpis article{padding:10px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}.capacity-kpis span,.capacity-kpis small{display:block;color:#7e92a8;font-size:8px}.capacity-kpis b{display:block;color:#eef5fb;font-size:18px;margin:3px 0}.capacity-kpis article.bad{border-color:rgba(224,82,82,.28);background:rgba(224,82,82,.07)}.capacity-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:10px}.capacity-layout table small{display:block;color:#73879d;margin-top:3px}.capacity-layout tr.capacity-over,.capacity-layout tr.teacher-over{background:rgba(224,82,82,.07)}.capacity-advice{display:grid;gap:7px}.capacity-advice article{padding:10px;border-radius:9px;background:rgba(255,255,255,.03);border-left:3px solid #20b7d8}.capacity-advice article.high{border-left-color:#e05252}.capacity-advice b,.capacity-advice span{display:block}.capacity-advice b{color:#dfe8f2;font-size:10px}.capacity-advice span{color:#7f92a8;font-size:9px;line-height:1.55;margin-top:4px}
@media(max-width:1000px){.capacity-kpis{grid-template-columns:repeat(3,1fr)}.capacity-layout{grid-template-columns:1fr}}@media(max-width:600px){.capacity-kpis{grid-template-columns:repeat(2,1fr)}}

/* ── 真实数据试运行与验收中心 ───────────────── */
.pilot-hero{display:grid;grid-template-columns:125px 1fr;gap:20px;align-items:center;padding:20px;margin-bottom:14px;border-radius:14px;border:1px solid rgba(224,82,82,.24);background:linear-gradient(135deg,rgba(224,82,82,.1),rgba(226,170,56,.05))}.pilot-hero.ready{border-color:rgba(54,194,117,.27);background:linear-gradient(135deg,rgba(54,194,117,.1),rgba(32,183,216,.05))}.pilot-score{width:105px;height:105px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(#20b7d8 calc(var(--score)*1%),rgba(255,255,255,.08) 0);position:relative}.pilot-score:after{content:"";position:absolute;inset:8px;border-radius:50%;background:#102238}.pilot-score b,.pilot-score span{position:relative;z-index:1}.pilot-score b{font-size:32px;color:#fff}.pilot-score span{font-size:9px;color:#8195aa}.pilot-hero em{font-style:normal;font-size:10px;color:#ef8585}.pilot-hero.ready em{color:#73dfa0}.pilot-hero h2{margin:5px 0;color:#f0f5fa}.pilot-hero p{font-size:10px;color:#8699ad}.pilot-auto,.pilot-manual,.pilot-issues,.pilot-backups{margin-top:14px}.pilot-auto>.panel-head+div{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:10px}.pilot-check{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;text-align:left;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.025);padding:10px;color:#dfe8f2;cursor:pointer}.pilot-check:hover{background:rgba(255,255,255,.05)}.pilot-check>i{width:24px;height:24px;display:grid;place-content:center;border-radius:50%;font-style:normal;background:rgba(224,82,82,.13);color:#f18b8b}.pilot-check.pass>i{background:rgba(54,194,117,.13);color:#73dfa0}.pilot-check.warn>i{background:rgba(226,170,56,.13);color:#edc46e}.pilot-check b,.pilot-check span{display:block}.pilot-check b{font-size:10px}.pilot-check span{font-size:8px;color:#7c91a7;margin-top:3px}.pilot-check em{font-style:normal;font-size:8px;color:#72869c}.pilot-manual table small{display:block;color:#768a9f;margin-top:3px}.pilot-status{display:inline-flex;padding:3px 7px;border-radius:9px;font-size:9px;background:rgba(226,170,56,.11);color:#e7bc66}.pilot-status.pass{background:rgba(54,194,117,.11);color:#76dfa1}.pilot-status.fail{background:rgba(224,82,82,.11);color:#ef8888}.pilot-issues>.panel-head+div{display:grid;gap:7px;padding:10px}.pilot-issue{display:grid;grid-template-columns:34px 1fr 65px auto;gap:9px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:9px}.pilot-issue.high{border-left:3px solid #e05252}.pilot-issue.done{opacity:.55}.pilot-issue em{font-style:normal;font-size:9px;color:#edbd67}.pilot-issue b,.pilot-issue span,.pilot-issue p{display:block}.pilot-issue b{font-size:11px;color:#e5edf5}.pilot-issue span,.pilot-issue p{font-size:8px;color:#788da3;margin:3px 0 0}.pilot-issue>strong{font-size:9px;color:#8fa2b5}
@media(max-width:800px){.pilot-auto>.panel-head+div{grid-template-columns:1fr}.pilot-issue{grid-template-columns:30px 1fr}.pilot-issue>strong,.pilot-issue>button{grid-column:2}.pilot-hero{grid-template-columns:1fr}.pilot-score{margin:auto}}

/* ── 题库课程与诊断同步 ─────────────────────── */
.qb-connection{display:flex;justify-content:space-between;align-items:center;padding:14px;margin-bottom:12px;border-radius:11px;background:rgba(224,82,82,.06);border:1px solid rgba(224,82,82,.18)}.qb-connection.connected{background:rgba(54,194,117,.06);border-color:rgba(54,194,117,.18)}.qb-connection span,.qb-connection b,.qb-connection small{display:block}.qb-connection span,.qb-connection small{font-size:9px;color:#7f93a8}.qb-connection b{color:#e7eef6;margin:4px 0}.qb-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.qb-kpis article{padding:12px;border-radius:10px;background:rgba(15,31,48,.94);border:1px solid rgba(255,255,255,.08)}.qb-kpis span{font-size:9px;color:#8093a9}.qb-kpis b{display:block;color:#eef5fb;font-size:19px;margin-top:4px}.qb-courses,.qb-diagnostics,.qb-runs{margin-top:12px}.qb-diagnostics>.panel-head+div{display:grid;gap:7px;padding:10px}.qb-diagnostic{display:grid;grid-template-columns:1fr 200px auto;gap:10px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:10px}.qb-diagnostic.pending{border-left:3px solid #e2aa38}.qb-diagnostic span,.qb-diagnostic b,.qb-diagnostic small{display:block}.qb-diagnostic>div:first-child span,.qb-diagnostic small{font-size:8px;color:#788da3}.qb-diagnostic b{font-size:11px;color:#e6eef6;margin:3px 0}.qb-diagnostic>div:nth-child(2) em{display:block;font-style:normal;color:#e3b75f;font-size:9px}.qb-diagnostic>div:nth-child(2) span{font-size:9px;color:#8296aa;margin-top:4px}.qb-diagnostic>strong{font-size:9px;color:#70dda0}.qb-course-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:430px;overflow:auto;margin:12px 0}.qb-course-picker label{display:grid;grid-template-columns:20px 1fr;gap:4px 7px;padding:9px;border-radius:8px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}.qb-course-picker input{grid-row:1/3}.qb-course-picker span{font-size:10px;color:#e0e9f2}.qb-course-picker small{font-size:8px;color:#788da3}
@media(max-width:800px){.qb-kpis{grid-template-columns:repeat(2,1fr)}.qb-diagnostic{grid-template-columns:1fr}.qb-course-picker{grid-template-columns:1fr}}
.product-form-more {
  margin-top: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
}

.product-form-more summary {
  cursor: pointer;
  padding: 14px 16px;
  color: var(--text-secondary, var(--muted));
  font-weight: 700;
}

.product-form-more[open] summary {
  border-bottom: 1px solid var(--border);
}

.product-form-more .form-grid {
  padding: 16px;
}

.product-level-card .product-add-inline {
  border-style: dashed;
  opacity: 0.9;
}
.class-type-section {
  margin-top: 22px;
}

.class-type-section > .panel-head {
  margin-bottom: 12px;
}

.class-type-section > .panel-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.recycle-lead-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.recycle-lead-list article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
}

.recycle-lead-list article div {
  display: grid;
  gap: 4px;
}

.recycle-lead-list article span,
.recycle-lead-list article small {
  color: var(--muted);
}
.lead-delete-confirm-layer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0,0,0,.58);
  backdrop-filter: blur(3px);
}

.lead-delete-confirm {
  width: min(420px, 100%);
  padding: 22px;
  border: 1px solid rgba(255,111,123,.28);
  border-radius: 16px;
  background: #101b2a;
  box-shadow: 0 24px 70px rgba(0,0,0,.48);
}

.lead-delete-confirm h3 { margin: 0 0 8px; }
.lead-delete-confirm p { margin: 0 0 16px; color: var(--muted); line-height: 1.6; }
.lead-delete-confirm label { display: grid; gap: 7px; color: var(--muted); }
.lead-delete-confirm input { width: 100%; }
.lead-delete-confirm > div { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.unassigned-student-panel {
  margin-top: 16px;
  margin-bottom: 22px;
}

.unassigned-student-panel .panel-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.duplicate-section-title {
  margin: 20px 0 10px;
}

.cross-project-overlap {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.cross-project-overlap .panel-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.cross-project-overlap-list {
  display: grid;
  gap: 9px;
}

.cross-project-overlap-list article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(38,198,218,.2);
  border-radius: 12px;
  background: rgba(38,198,218,.055);
}

.cross-project-overlap-list article div { display: grid; gap: 4px; }
.cross-project-overlap-list article span { color: var(--muted); font-size: 12px; }
.cross-project-overlap-list article em { color: #7ee7f5; font-style: normal; white-space: nowrap; }

/* ============================================================
   v67 侧边栏统一：图标全部线性 SVG + 更安静的选中态 + 修复收起后的悬停名称
   ============================================================ */
/* 关掉活动项的扫光动画，选中态只保留干净的左侧高亮条+底色（更统一不晃眼） */
.nav-btn.active::after{ animation:none!important; }
.sidebar:not(.collapsed) .nav-btn::after{ display:none!important; }

/* 图标统一大小与透明度 */
.nav-icon{ width:18px!important; height:18px!important; }
.nav-icon svg{ width:16px!important; height:16px!important; }
.nav-icon,.nav-emoji-icon{ opacity:.9!important; }
.nav-btn.active .nav-icon{ opacity:1!important; }

/* 间距/分组标题更清爽 */
.nav-btn{ min-height:38px!important; margin-bottom:2px!important; }
.nav-group{ margin-bottom:2px!important; }
.nav-group-label{ font-size:10.5px!important; letter-spacing:.6px!important; color:#5f829a!important; padding:12px 12px 5px!important; }
.sidebar-divider{ margin:6px 12px!important; background:rgba(32,183,216,.1)!important; }

/* 收起后：悬停图标显示页面名（原被扫光动画覆盖，这里恢复成干净提示气泡） */
.sidebar.collapsed .nav-btn::after{
  content:attr(data-title)!important; display:block!important; position:absolute!important;
  left:calc(100% + 12px)!important; right:auto!important; top:50%!important; bottom:auto!important;
  width:auto!important; transform:translateY(-50%)!important; padding:7px 11px!important;
  border:1px solid rgba(32,183,216,.22)!important; border-radius:10px!important;
  background:#0b1c2b!important; color:#e6f6ff!important; box-shadow:0 10px 26px rgba(0,0,0,.45)!important;
  font-size:12px!important; font-weight:800!important; white-space:nowrap!important;
  opacity:0!important; pointer-events:none!important; z-index:95!important; animation:none!important;
}
.sidebar.collapsed .nav-btn:hover::after{ opacity:1!important; transform:translate(3px,-50%)!important; }

/* 收起/展开按钮更清楚 */
.sidebar-toggle-btn{
  width:30px!important; height:30px!important; border:1px solid rgba(32,183,216,.2)!important;
  border-radius:9px!important; background:rgba(32,183,216,.08)!important; color:#9fd7e8!important; font-size:18px!important;
}
.sidebar-toggle-btn:hover{ background:rgba(32,183,216,.16)!important; color:#e6f6ff!important; border-color:rgba(32,183,216,.4)!important; }

/* ============================================================
   v68 每个板块自己的主色（由 renderNav 注入 --nav-accent / --nav-rgb）
   选中项：板块色的文字 + 左侧竖条 + 淡底色；分组标题也用板块色
   ============================================================ */
.sidebar .nav-group-label{ color:var(--nav-accent,#5f829a)!important; opacity:.92; }
.sidebar .nav-btn.active{
  color:var(--nav-accent,#48dfff)!important;
  background:linear-gradient(90deg, rgba(var(--nav-rgb,32,183,216),.17), rgba(var(--nav-rgb,32,183,216),.05))!important;
  border-color:rgba(var(--nav-rgb,32,183,216),.2)!important;
  box-shadow:inset 3px 0 0 rgb(var(--nav-rgb,32,183,216)), 0 0 22px rgba(var(--nav-rgb,32,183,216),.08)!important;
}
.sidebar .nav-btn.active .nav-icon{ color:var(--nav-accent,#48dfff)!important; opacity:1!important; }
/* 悬停时图标带一点板块色，文字保持清亮 */
.sidebar .nav-btn:hover{ color:#e6f6ff!important; background:rgba(var(--nav-rgb,32,183,216),.08)!important; border-color:rgba(var(--nav-rgb,32,183,216),.1)!important; }
.sidebar .nav-btn:hover .nav-icon{ color:var(--nav-accent,#9fd7e8)!important; }

/* ============================================================
   v69 学员页：待核实提示条 + 状态标签页 + 操作面板
   ============================================================ */
.student-verify-banner{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin:0 0 12px; padding:11px 14px; border-radius:10px;
  background:rgba(240,161,58,.1); border:1px solid rgba(240,161,58,.28); color:#f0b45a; font-size:13px; font-weight:700; }
.student-verify-banner b{ color:#ffd08a; }
.student-verify-banner>div{ display:flex; gap:8px; }
.student-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.student-tab{ display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border-radius:999px;
  border:1px solid var(--line2,#243447); background:rgba(255,255,255,.03); color:var(--muted,#8fb0c8);
  font-size:13px; font-weight:800; cursor:pointer; transition:all .12s; }
.student-tab:hover{ color:var(--ink2,#dbeafe); border-color:rgba(32,183,216,.28); }
.student-tab.active{ color:#04222a; background:#20b7d8; border-color:#20b7d8; }
.student-tab em{ font-style:normal; font-size:11px; padding:1px 7px; border-radius:999px; background:rgba(0,0,0,.16); }
.student-tab.active em{ background:rgba(255,255,255,.28); color:#fff; }
.action-sheet{ display:grid; gap:6px; }
.action-sheet-btn{ width:100%; text-align:left; padding:12px 14px; border-radius:10px;
  border:1px solid var(--line2,#243447); background:rgba(255,255,255,.03); color:var(--ink2,#e6f1fb);
  font-size:14px; font-weight:700; cursor:pointer; transition:all .12s; }
.action-sheet-btn:hover{ background:rgba(32,183,216,.09); border-color:rgba(32,183,216,.3); }

/* ============================================================
   v70 线索详情：转化流程条 + 诊断拍照 + 顶部折叠
   ============================================================ */
.lead-flow{ display:flex; align-items:stretch; gap:2px; margin:2px 0 14px; flex-wrap:wrap; }
.lead-flow-step{ flex:1; min-width:96px; display:flex; flex-direction:column; align-items:center; gap:2px;
  padding:9px 8px; border-radius:10px; border:1px solid var(--line2,#243447); background:rgba(255,255,255,.02);
  color:var(--muted,#8fb0c8); cursor:pointer; transition:all .12s; }
.lead-flow-step:hover{ border-color:rgba(32,183,216,.3); color:var(--ink2,#dbeafe); }
.lead-flow-step i{ font-style:normal; width:20px; height:20px; border-radius:50%; display:grid; place-items:center;
  font-size:11px; font-weight:900; background:rgba(255,255,255,.08); color:var(--muted,#8fb0c8); }
.lead-flow-step b{ font-size:13px; font-weight:800; }
.lead-flow-step small{ font-size:10.5px; opacity:.8; text-align:center; line-height:1.3; }
.lead-flow-step.done{ border-color:rgba(54,194,117,.3); color:#6ee7a8; background:rgba(54,194,117,.06); }
.lead-flow-step.done i{ background:#36c275; color:#04220f; }
.lead-flow-step.cur{ border-color:rgba(32,183,216,.45); color:#48dfff; background:rgba(32,183,216,.1); box-shadow:inset 0 0 0 1px rgba(32,183,216,.2); }
.lead-flow-step.cur i{ background:#20b7d8; color:#04222a; }
.lead-flow-arrow{ display:flex; align-items:center; color:rgba(255,255,255,.2); font-size:16px; }
.lead-asset-details{ margin:0 0 12px; border:1px solid var(--line2,#243447); border-radius:12px; background:rgba(255,255,255,.015); }
.lead-asset-details>summary{ cursor:pointer; padding:11px 14px; font-size:13px; font-weight:800; color:var(--muted,#8fb0c8); list-style:none; }
.lead-asset-details>summary::-webkit-details-marker{ display:none; }
.lead-asset-details>summary small{ font-weight:400; opacity:.7; }
.lead-asset-details[open]>summary{ border-bottom:1px solid var(--line2,#243447); color:var(--ink2,#dbeafe); }
.lead-asset-details .lead-asset-grid{ padding:12px; }
.diag-photo{ display:flex; align-items:center; gap:12px; margin-top:6px; }
.diag-photo-preview{ width:80px; height:80px; border-radius:9px; border:1px dashed var(--line2,#334); display:grid; place-items:center; overflow:hidden; flex-shrink:0; color:var(--muted); font-size:11px; }
.diag-photo-preview img{ width:100%; height:100%; object-fit:cover; }
.diag-photo input[type=file]{ flex:1; font-size:12px; color:#cfe0ec; }
.diagnostic-photo{ display:inline-flex; align-items:center; gap:8px; margin-top:10px; text-decoration:none; color:#48dfff; font-size:12px; font-weight:700; }
.diagnostic-photo img{ width:52px; height:52px; object-fit:cover; border-radius:8px; border:1px solid var(--line2,#334); }

/* ============================================================
   v71 班级管理：待处理折叠（未分班/待开课收起）；承载盘点已上移到年度经营规划
   ============================================================ */
.class-todo{ margin:0 0 14px; border:1px solid rgba(240,161,58,.28); border-radius:12px; background:rgba(240,161,58,.05); }
.class-todo>summary{ cursor:pointer; padding:12px 16px; font-size:14px; font-weight:800; color:#f0b45a; list-style:none; }
.class-todo>summary::-webkit-details-marker{ display:none; }
.class-todo>summary b{ color:#ffd08a; }
.class-todo[open]>summary{ border-bottom:1px solid rgba(240,161,58,.2); }
.class-todo .unassigned-student-panel{ margin:12px; }

/* ============================================================
   v74 电话跟进弹窗 · 美观优化（仅样式，不改功能）
   ============================================================ */
.modal-card:has(.follow-redesign){
  border:1px solid rgba(32,183,216,.16)!important; border-radius:18px!important;
  box-shadow:0 26px 72px rgba(0,0,0,.5)!important;
}
/* 标题：左侧一道渐变竖条 + 干净的“线索资料”胶囊 */
.follow-redesign-head h2{ font-size:21px!important; font-weight:900!important; letter-spacing:.3px; display:flex; align-items:center; gap:10px; }
.follow-redesign-head h2::before{ content:''; width:7px; height:22px; border-radius:4px; background:linear-gradient(180deg,#25c7e8,#2f8fdf); flex-shrink:0; }
.follow-link{ border:1px solid rgba(32,183,216,.28)!important; border-radius:999px!important; background:rgba(32,183,216,.08)!important; color:#7fdcef!important; padding:7px 14px!important; font-size:13px!important; font-weight:800!important; cursor:pointer; transition:all .15s; white-space:nowrap; }
.follow-link:hover{ background:rgba(32,183,216,.16)!important; color:#dff5ff!important; border-color:rgba(32,183,216,.5)!important; }
/* 本次拨打卡片：柔和双色渐变 + 头像光晕 */
.follow-dial-bar{ padding:16px 18px!important; background:linear-gradient(135deg,rgba(32,183,216,.1),rgba(139,124,246,.05))!important; border:1px solid rgba(32,183,216,.22)!important; border-radius:16px!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.03); }
.follow-dial-avatar{ width:52px!important; height:52px!important; font-size:20px!important; background:linear-gradient(135deg,#25c7e8,#8b7cf6)!important; box-shadow:0 6px 18px rgba(37,199,232,.28),inset 0 0 0 2px rgba(255,255,255,.12)!important; }
.follow-dial-name{ font-size:17px!important; font-weight:900!important; color:#f2fbff!important; }
.follow-dial-phone{ font-size:17px!important; color:#4fd6ef!important; letter-spacing:1.5px!important; font-weight:800!important; }
.follow-dial-sub{ color:#8fb0c8!important; margin-top:5px!important; }
/* 人工/AI/校长 → 小胶囊 */
.follow-dial-judges{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.fdj{ display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:800; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); color:#c2d3e0; }
.fdj b{ font-weight:900; font-size:10px; color:#6f95af; }
/* 立即拨打 主 CTA */
.follow-dial-call{ padding:11px 20px!important; border-radius:12px!important; font-size:15px!important; background:linear-gradient(135deg,#25c7e8,#1f97cf)!important; color:#04202b!important; border:0!important; box-shadow:0 8px 20px rgba(37,199,232,.32)!important; transition:filter .15s; }
.follow-dial-call:hover{ filter:brightness(1.07); }
.follow-dial-call::before{ content:'📞'; font-size:13px; margin-right:3px; }
.follow-dial-copy{ padding:11px 16px!important; border-radius:12px!important; background:rgba(255,255,255,.05)!important; border:1px solid rgba(255,255,255,.12)!important; color:#b9c8d6!important; transition:all .15s; }
.follow-dial-copy:hover{ background:rgba(255,255,255,.1)!important; color:#dff5ff!important; }
/* 录音提示：改成青色信息卡，更统一 */
.follow-record-hint{ margin-top:12px!important; padding:11px 14px!important; border-radius:12px!important; background:rgba(37,199,232,.06)!important; border:1px solid rgba(37,199,232,.16)!important; color:#9fbdd3!important; }
.follow-record-hint b{ color:#4fd6ef!important; }
/* 段落标题：渐隐分隔线 */
.follow-section{ padding:16px 0!important; }
.follow-section-label{ font-size:12px!important; color:#7fa7c0!important; letter-spacing:.8px!important; }
.follow-section-label::after{ background:linear-gradient(90deg,rgba(32,183,216,.22),transparent)!important; }
/* 表单：更明显的聚焦态 */
.follow-form-grid{ gap:13px!important; }
.follow-form-grid label{ color:#9fbdd3!important; }
.follow-form-grid input,.follow-form-grid select,.follow-form-grid textarea{ border:1px solid rgba(113,176,214,.2)!important; border-radius:11px!important; background:rgba(3,15,24,.5)!important; padding:12px 13px!important; transition:border-color .15s,box-shadow .15s; }
.follow-form-grid input:focus,.follow-form-grid select:focus,.follow-form-grid textarea:focus{ border-color:rgba(37,199,232,.5)!important; box-shadow:0 0 0 3px rgba(37,199,232,.12)!important; outline:none; }
/* 三方评判面板 */
.follow-judge-panel{ border-radius:14px!important; padding:14px!important; background:linear-gradient(135deg,rgba(139,124,246,.1),rgba(139,124,246,.04))!important; border:1px solid rgba(139,124,246,.24)!important; }
.follow-judge-status.good{ color:#6ee7a8!important; } .follow-judge-status.warn{ color:#ffce6b!important; }
/* 历史通话空态 */
.follow-redesign .empty{ border:1px dashed rgba(255,255,255,.1); border-radius:12px; padding:16px; color:#7e9cb3; }
/* 底部动作按钮 */
.follow-bottom-actions{ gap:10px!important; margin-top:18px!important; }
.follow-bottom-actions>button{ border-radius:11px!important; min-height:44px; font-weight:800; }
/* ── v76：录音上传字段 + AI结构化要点 ── */
.follow-audio-field{ background:rgba(37,199,232,.05)!important; border:1px dashed rgba(37,199,232,.28)!important; border-radius:12px!important; padding:12px 14px!important; }
.follow-audio-title{ display:block; font-weight:800; color:#8fd4e8!important; }
.follow-audio-title small{ font-weight:400; color:#7fa7c0; }
.follow-audio-field input[type=file]{ margin-top:9px; width:100%; background:rgba(3,15,24,.4)!important; border:1px solid rgba(113,176,214,.2)!important; border-radius:10px!important; padding:9px 11px!important; color:#cfe3f0; cursor:pointer; }
.follow-audio-field input[type=file]::file-selector-button{ margin-right:12px; padding:7px 14px; border-radius:8px; border:0; background:linear-gradient(135deg,#25c7e8,#1f97cf); color:#04202b; font-weight:800; cursor:pointer; }
.follow-audio-note{ display:block; margin-top:9px; font-size:12px; line-height:1.6; color:#84a6bd; }
/* 老师记录小标签 */
.follow-hist-tagline{ display:inline-block; font-size:10px; font-weight:800; letter-spacing:.5px; color:#7fa7c0; background:rgba(255,255,255,.06); border-radius:6px; padding:1px 7px; margin-right:8px; vertical-align:1px; }
/* AI结构化要点卡 */
.follow-hist-keypoints,#followAiKeyPoints{ margin-top:9px; border-radius:12px; padding:12px 13px; background:linear-gradient(135deg,rgba(37,199,232,.08),rgba(37,199,232,.03)); border:1px solid rgba(37,199,232,.2); }
#followAiKeyPoints{ margin-top:12px; }
.fkp-head{ font-size:11.5px; font-weight:900; letter-spacing:.6px; color:#4fd6ef; margin-bottom:8px; display:flex; align-items:center; gap:5px; }
.fkp-head::before{ content:'🧩'; font-size:12px; }
.fkp-row{ display:flex; gap:9px; padding:4px 0; font-size:13px; line-height:1.6; border-top:1px solid rgba(37,199,232,.09); }
.fkp-row:first-of-type{ border-top:0; }
.fkp-row b{ flex:0 0 62px; color:#8fb6cd; font-weight:700; font-size:12px; }
.fkp-row span{ flex:1; color:#dbe8f1; }
/* ── v77：录音逐字稿 ── */
.follow-transcribe-btn{ margin-top:8px!important; font-size:12px!important; padding:6px 12px!important; border-radius:9px!important; background:rgba(37,199,232,.08)!important; border:1px solid rgba(37,199,232,.24)!important; color:#7fd4ea!important; }
.follow-transcribe-btn:hover{ background:rgba(37,199,232,.16)!important; }
.follow-hist-transcript{ margin-top:9px; border-radius:11px; border:1px solid rgba(113,176,214,.16); background:rgba(3,15,24,.4); overflow:hidden; }
.follow-hist-transcript>summary{ cursor:pointer; padding:9px 13px; font-size:12.5px; font-weight:700; color:#8fb6cd; list-style:none; user-select:none; }
.follow-hist-transcript>summary::-webkit-details-marker{ display:none; }
.follow-hist-transcript[open]>summary{ border-bottom:1px solid rgba(113,176,214,.12); color:#4fd6ef; }
.fht-body{ padding:11px 13px; font-size:13px; line-height:1.85; color:#cfe0ec; max-height:280px; overflow:auto; white-space:normal; }
.fht-re{ margin:0 13px 12px!important; font-size:11.5px!important; padding:4px 11px!important; border-radius:8px!important; color:#8fb6cd!important; }
/* ── v78：AI综合结论 + 成长中心复盘卡结构化 ── */
.follow-hist-overall{ margin-top:8px; border-radius:11px; padding:11px 13px; font-size:13px; line-height:1.75; color:#e7f0d8; background:linear-gradient(135deg,rgba(110,231,168,.12),rgba(110,231,168,.04)); border:1px solid rgba(110,231,168,.26); }
.follow-hist-overall b{ display:block; font-size:11.5px; letter-spacing:.5px; color:#6ee7a8; margin-bottom:4px; }
/* 成长中心·我的通话复盘 */
.gcx-overall{ margin:2px 0 10px; border-radius:12px; padding:12px 14px; background:linear-gradient(135deg,rgba(110,231,168,.14),rgba(110,231,168,.04)); border:1px solid rgba(110,231,168,.3); }
.gcx-overall>b{ display:block; font-size:12.5px; font-weight:800; color:#3ecf8e; margin-bottom:5px; }
.gcx-overall>p{ margin:0; font-size:14px; line-height:1.75; color:#1f2937; }
.gcx-overall.pending{ background:rgba(148,163,184,.1); border-color:rgba(148,163,184,.28); }
.gcx-overall.pending>b{ color:#64748b; } .gcx-overall.pending>p{ color:#64748b; }
.gcx-note{ margin:0 0 10px; border-radius:12px; padding:11px 14px; background:rgba(148,163,184,.08); border:1px solid rgba(148,163,184,.2); }
.gcx-note>b{ display:block; font-size:12px; font-weight:700; color:#475569; margin-bottom:4px; }
.gcx-note>p{ margin:0; font-size:13.5px; line-height:1.7; color:#334155; white-space:pre-wrap; }
.gcx-transcript-box{ margin:0 0 10px; border-radius:12px; border:1px solid rgba(37,199,232,.25); background:rgba(37,199,232,.05); overflow:hidden; }
.gcx-transcript-box>summary{ cursor:pointer; padding:10px 14px; font-size:13px; font-weight:700; color:#0e7490; list-style:none; user-select:none; }
.gcx-transcript-box>summary::-webkit-details-marker{ display:none; }
.gcx-transcript-box[open]>summary{ border-bottom:1px solid rgba(37,199,232,.18); }
.gcx-transcript-body{ padding:12px 14px; font-size:13.5px; line-height:1.9; color:#1f2937; max-height:320px; overflow:auto; }
.gcx-transcribe{ margin:0 0 10px!important; }
/* ── v79：每日成长闭环（能力分 + 漏斗 + 日报 + 复盘报告 + 校长点评）── */
.gcx-growth-loop{ background:#fff; border:1px solid #e5eaf1; border-radius:16px; padding:18px 18px 16px; margin-bottom:16px; box-shadow:0 6px 20px rgba(31,50,73,.05); }
.gl-title{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.gl-title>span{ font-size:16px; font-weight:800; color:#142033; }
.gl-title>b{ font-size:12px; font-weight:600; color:#8595a5; }
.gl-top{ display:grid; grid-template-columns:minmax(240px,1fr) minmax(280px,1.3fr); gap:14px; }
@media(max-width:820px){ .gl-top{ grid-template-columns:1fr; } }
.gl-ability{ border:1px solid #e9edf3; border-radius:14px; padding:14px; background:linear-gradient(160deg,#f7fbff,#eef4fb); }
.gl-score{ display:flex; align-items:baseline; gap:8px; }
.gl-score>span{ font-size:13px; color:#66758a; font-weight:700; }
.gl-score>b{ font-size:38px; font-weight:900; line-height:1; color:#0b7d8f; }
.gl-score>small{ font-size:13px; color:#66758a; }
.gl-score.lv-优秀>b{ color:#15956b; } .gl-score.lv-良好>b{ color:#0b7d8f; }
.gl-score.lv-待提升>b{ color:#b7791f; } .gl-score.lv-需重点辅导>b{ color:#c13e4d; }
.gl-weak{ margin:8px 0 12px; font-size:13px; color:#66758a; } .gl-weak b{ color:#c13e4d; }
.gl-comps{ display:flex; flex-direction:column; gap:7px; }
.gl-comp{ display:grid; grid-template-columns:64px 1fr 30px; align-items:center; gap:8px; font-size:12px; color:#5a6b7e; }
.gl-comp>i{ height:8px; border-radius:6px; display:block; background:#0b7d8f; }
.gl-comp>i.good{ background:#15956b; } .gl-comp>i.mid{ background:#b7791f; } .gl-comp>i.low{ background:#c13e4d; }
.gl-comp>b{ text-align:right; font-weight:800; color:#334155; }
.gl-funnel-card{ border:1px solid #e9edf3; border-radius:14px; padding:14px; }
.gl-sub{ font-size:12.5px; color:#66758a; margin-bottom:12px; font-weight:600; }
.gl-funnel{ display:flex; align-items:flex-end; justify-content:space-between; gap:2px; }
.gl-fstep{ display:flex; flex-direction:column; align-items:center; gap:3px; flex:1; }
.gl-fbar-wrap{ height:70px; width:26px; display:flex; align-items:flex-end; }
.gl-fbar{ width:100%; border-radius:6px 6px 0 0; background:linear-gradient(180deg,#25c7e8,#0b7d8f); min-height:8px; }
.gl-fstep>b{ font-size:17px; font-weight:900; color:#142033; }
.gl-fstep>span{ font-size:11.5px; color:#66758a; }
.gl-fstep>em{ font-size:11px; font-style:normal; font-weight:800; color:#15956b; }
.gl-fstep>em.low{ color:#c13e4d; } .gl-fstep>em.ghost{ color:#b6c1cd; font-weight:600; }
.gl-farrow{ font-style:normal; color:#c3ccd6; font-size:18px; padding-bottom:26px; }
.gl-daily{ margin-top:14px; border-top:1px dashed #e2e8f0; padding-top:14px; }
.gl-daily-head{ font-size:14px; font-weight:800; color:#142033; margin-bottom:10px; }
.gl-daily-metrics{ display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-bottom:12px; }
@media(max-width:680px){ .gl-daily-metrics{ grid-template-columns:repeat(3,1fr); } }
.gl-stat{ background:#f6f8fb; border:1px solid #eef2f7; border-radius:10px; padding:9px 8px; text-align:center; }
.gl-stat>b{ display:block; font-size:19px; font-weight:900; color:#142033; }
.gl-stat>span{ font-size:11.5px; color:#66758a; }
.gl-stat>small{ display:block; font-size:10.5px; color:#93a0af; }
.gl-stat.ok{ background:#eaf7f0; border-color:#c6ebda; } .gl-stat.ok>b{ color:#15956b; }
.gl-stat.warn{ background:#fdf2e6; border-color:#f6dcbb; } .gl-stat.warn>b{ color:#b7791f; }
.gl-highlight{ border-radius:10px; padding:9px 12px; font-size:13px; line-height:1.6; margin-bottom:8px; }
.gl-highlight.good{ background:#eaf7f0; border:1px solid #c6ebda; color:#0f6b4d; }
.gl-highlight.bad{ background:#fdeef0; border:1px solid #f5cdd3; color:#a12f3d; }
.gl-concerns{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:12px; font-size:12.5px; }
.gl-concerns>b{ color:#66758a; }
.gl-concerns>span{ background:#fff2e8; border:1px solid #ffd9bd; color:#b7791f; border-radius:999px; padding:3px 10px; font-size:12px; }
.gl-report,.gl-comment{ margin-top:6px; }
.gl-report>label,.gl-comment>label{ display:block; font-size:13px; font-weight:700; color:#334155; margin-bottom:6px; }
.gl-report>label small,.gl-comment>label small{ font-weight:400; color:#93a0af; margin-left:6px; }
.gl-report textarea,.gl-comment textarea{ width:100%; border:1px solid #d6dde6; border-radius:10px; padding:10px 12px; font:inherit; resize:vertical; outline:none; }
.gl-report textarea:focus,.gl-comment textarea:focus{ border-color:#0b7d8f; box-shadow:0 0 0 3px rgba(11,125,143,.1); }
.gl-report .gcx-btn,.gl-comment .gcx-btn{ margin-top:8px; }
.gl-comment{ margin-top:12px; background:#f7fafd; border:1px solid #e7eef5; border-radius:12px; padding:12px; }
.gl-comment>p{ margin:0; font-size:13px; line-height:1.7; color:#475569; }
/* ── v80：成交五维能力评分 ── */
.gcx-dims{ margin:0 0 12px; border:1px solid #e7eef5; border-radius:12px; padding:12px 14px; background:linear-gradient(135deg,#f8fbff,#f2f7fc); }
.dim-head{ font-size:13px; font-weight:800; color:#0b7d8f; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.dim-crit{ font-size:11.5px; font-weight:800; color:#b7791f; background:#fff3dd; border:1px solid #f5dca8; border-radius:999px; padding:2px 9px; }
.dim-bars{ display:flex; flex-direction:column; gap:7px; }
.dim-row{ display:grid; grid-template-columns:64px 1fr 22px; align-items:center; gap:9px; font-size:12px; color:#5a6b7e; }
.dim-row>i{ height:8px; border-radius:6px; display:block; background:#0b7d8f; min-width:3px; }
.dim-row>i.good{ background:#15956b; } .dim-row>i.mid{ background:#b7791f; } .dim-row>i.low{ background:#c13e4d; }
.dim-row>b{ text-align:right; font-weight:800; color:#334155; }
.dim-comment{ margin:10px 0 0; font-size:12.5px; line-height:1.7; color:#475569; padding-top:9px; border-top:1px dashed #e2e8f0; }
.gl-dimstruct{ margin-top:14px; border:1px solid #e9edf3; border-radius:14px; padding:14px; }
.gl-dimbars{ display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; }
@media(max-width:680px){ .gl-dimbars{ grid-template-columns:1fr; } }
/* ── v81：能力曲线 + 成交五维培训（知识库）+ 训练入口 ── */
.gl-train-link{ margin-left:10px; font-size:12px; font-weight:700; color:#0b7d8f; background:#e6f5f7; border:1px solid #bfe6ea; border-radius:999px; padding:2px 10px; cursor:pointer; }
.gl-train-link:hover{ background:#d3edf0; }
.gl-curve-card{ margin-top:14px; border:1px solid #e9edf3; border-radius:14px; padding:14px; }
.gl-curve{ display:flex; align-items:flex-end; gap:6px; height:88px; margin-top:6px; }
.gl-cbar{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:3px; }
.gl-cbar>i{ width:100%; max-width:26px; border-radius:6px 6px 0 0; background:linear-gradient(180deg,#25c7e8,#0b7d8f); display:block; }
.gl-cbar>i.good{ background:linear-gradient(180deg,#3ecf8e,#15956b); } .gl-cbar>i.low{ background:linear-gradient(180deg,#e88,#c13e4d); }
.gl-cbar>b{ font-size:11px; font-weight:800; color:#5a6b7e; }
/* 成交五维培训 */
.sm-intro{ background:linear-gradient(135deg,#eef7f8,#e6f0f9); border:1px solid #cfe4ea; border-radius:14px; padding:16px 18px; margin-bottom:16px; }
.sm-intro>b{ font-size:17px; color:#0b5563; display:block; margin-bottom:6px; }
.sm-intro>p{ margin:0; font-size:13.5px; line-height:1.75; color:#3f5666; }
.sm-intro strong{ color:#c13e4d; }
.sm-card{ border:1px solid #e7edf3; border-radius:14px; padding:16px 18px; margin-bottom:14px; background:#fff; }
.sm-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.sm-icon{ font-size:22px; }
.sm-head h4{ margin:0; font-size:16px; color:#142033; flex:1; }
.sm-weight{ font-size:12px; font-weight:700; color:#0b7d8f; background:#e6f5f7; border-radius:999px; padding:3px 11px; }
.sm-def{ margin:0 0 12px; font-size:13.5px; line-height:1.75; color:#48586a; }
.sm-cols{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
@media(max-width:640px){ .sm-cols{ grid-template-columns:1fr; } }
.sm-good,.sm-bad,.sm-train{ border-radius:10px; padding:10px 12px; }
.sm-good{ background:#eef8f2; border:1px solid #cdebda; }
.sm-bad{ background:#fdf0f2; border:1px solid #f5d3d8; }
.sm-train{ background:#f4f8fd; border:1px solid #dbe7f3; }
.sm-good>b{ color:#15805a; } .sm-bad>b{ color:#b23347; } .sm-train>b{ color:#0b6478; }
.sm-good>b,.sm-bad>b,.sm-train>b{ font-size:12.5px; display:block; margin-bottom:6px; }
.sm-card ul{ margin:0; padding-left:18px; }
.sm-card li{ font-size:13px; line-height:1.7; color:#48586a; }
.sm-crit{ background:linear-gradient(135deg,#fffaf0,#fff4dd); border-color:#f3dca8; }
.sm-crit .sm-head h4{ color:#8a6212; }
/* ── v82：大成销冠体系 话术模板 + 测评 ── */
.sm-templates{ background:#f0f8fb; border:1px solid #cfe6ee; border-radius:10px; padding:11px 12px; margin-bottom:12px; }
.sm-templates>b{ display:block; font-size:12.5px; color:#0b6478; margin-bottom:8px; }
.sm-tpl{ display:flex; align-items:flex-start; gap:8px; padding:7px 0; border-top:1px dashed #d3e6ec; }
.sm-tpl:first-of-type{ border-top:0; }
.sm-tpl>span{ flex:1; font-size:13px; line-height:1.65; color:#28414d; }
.sm-copy{ flex:0 0 auto; font-size:11.5px; font-weight:700; color:#0b7d8f; background:#fff; border:1px solid #bfe6ea; border-radius:8px; padding:3px 10px; cursor:pointer; }
.sm-copy:hover{ background:#e6f5f7; }
.sm-quiz{ margin-top:12px; border-top:1px dashed #e2e8f0; padding-top:12px; }
.sm-quiz-head{ font-size:13px; font-weight:800; color:#8a6212; margin-bottom:10px; }
.sm-quiz-q{ margin-bottom:12px; }
.sm-quiz-title{ margin:0 0 8px; font-size:13.5px; font-weight:600; color:#334155; }
.sm-opts{ display:flex; flex-direction:column; gap:7px; }
.sm-opt{ text-align:left; font-size:13px; line-height:1.55; color:#3f5666; background:#fff; border:1px solid #dbe3ec; border-radius:9px; padding:9px 12px; cursor:pointer; transition:all .15s; }
.sm-opt:hover:not(:disabled){ border-color:#0b7d8f; background:#f4fbfc; }
.sm-opt:disabled{ cursor:default; }
.sm-opt.correct{ background:#eaf7f0; border-color:#8fd6b4; color:#0f6b4d; font-weight:700; }
.sm-opt.wrong{ background:#fdeef0; border-color:#f0b6bf; color:#a12f3d; }
.sm-quiz-why{ display:none; margin:8px 0 0; font-size:12.5px; line-height:1.7; color:#5a6b7e; background:#f7fafd; border-radius:8px; padding:9px 11px; }
.sm-quiz-why.show{ display:block; }
/* ── v83：销冠体系·话术审核 + 团队实战话术 ── */
.sm-review{ background:#fff8ec; border:1px solid #f3dca8; border-radius:14px; padding:14px 16px; margin-bottom:16px; }
.sm-review-head{ font-size:14px; font-weight:800; color:#8a6212; margin-bottom:12px; }
.sm-review-head small{ display:block; font-weight:400; font-size:12px; color:#b08a3a; margin-top:3px; }
.sm-review-item{ background:#fff; border:1px solid #f0e0bf; border-radius:11px; padding:11px 13px; margin-bottom:10px; }
.sm-review-meta{ display:flex; align-items:center; gap:8px; font-size:12px; color:#93a0af; margin-bottom:6px; }
.sm-review-dim{ background:#e6f5f7; color:#0b7d8f; border:1px solid #bfe6ea; border-radius:999px; padding:2px 10px; font-weight:700; }
.sm-review-line{ margin:0 0 10px; font-size:14px; line-height:1.7; color:#28414d; }
.sm-review-actions{ display:flex; gap:8px; }
.sm-approve{ font-size:12.5px; font-weight:700; color:#fff; background:#15956b; border:0; border-radius:8px; padding:7px 14px; cursor:pointer; }
.sm-approve:hover{ background:#0f7d58; }
.sm-reject{ font-size:12.5px; font-weight:700; color:#66758a; background:#fff; border:1px solid #d6dde6; border-radius:8px; padding:7px 14px; cursor:pointer; }
.sm-reject:hover{ background:#f2f5f8; }
.sm-team{ background:#fff7e8!important; border-color:#f3dca8!important; }
.sm-team>b{ color:#8a6212!important; }
.sm-src{ font-style:normal; color:#b08a3a; font-size:11.5px; }
/* ── v84：电邀能力排行榜（统一 gcq 风格）── */
.gcq-lb tr.me{ background:linear-gradient(90deg,#fff8e6,#fffdf7); }
.gcq-lb tr.me td{ font-weight:700; }
.lb-me{ font-style:normal; font-size:10.5px; font-weight:800; color:#fff; background:#e2aa38; border-radius:5px; padding:1px 6px; margin-left:5px; vertical-align:1px; }
.gcq-lb .gcq-rno.top{ background:transparent; font-size:17px; }
.gcq-lb td:nth-child(3) b{ color:#0b7d8f; font-size:15px; }
/* ── v85：本月成交提成（金色刺激卡）── */
.gcq-comm{ background:linear-gradient(135deg,#fff3d6,#ffe7b0); border:1px solid #f0cf82; border-radius:16px; padding:16px 20px; margin-bottom:16px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; box-shadow:0 8px 22px rgba(200,150,30,.14); }
.gcq-comm-main{ display:flex; flex-direction:column; }
.gcq-comm-label{ font-size:13px; font-weight:700; color:#8a6212; }
.gcq-comm-val{ font-size:34px; font-weight:900; line-height:1.1; color:#a3660a; letter-spacing:-.5px; }
.gcq-comm-side{ display:flex; gap:22px; }
.gcq-comm-side>div{ text-align:center; }
.gcq-comm-side b{ display:block; font-size:20px; font-weight:800; color:#7a5410; }
.gcq-comm-side span{ font-size:12px; color:#a4802f; }
.gcq-comm-hint{ flex:1 1 100%; font-size:13px; color:#8a6212; background:rgba(255,255,255,.5); border-radius:10px; padding:8px 12px; }
@media(max-width:560px){ .gcq-comm-val{ font-size:28px; } .gcq-comm{ gap:14px; } }
/* ── v86：停滞预警 + AI月度建议 ── */
.gcq-alerts{ display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.gcq-alert{ display:flex; align-items:flex-start; gap:11px; border-radius:12px; padding:12px 15px; border:1px solid; }
.gcq-alert>span{ font-size:18px; line-height:1.4; }
.gcq-alert>p{ margin:0; font-size:13.5px; line-height:1.7; }
.gcq-alert.high{ background:#fdecec; border-color:#f3b9b9; } .gcq-alert.high>p{ color:#a12020; }
.gcq-alert.warn{ background:#fff6e6; border-color:#f3d99a; } .gcq-alert.warn>p{ color:#8a6212; }
.gcq-alert.good{ background:#eaf7f0; border-color:#bfe6d1; } .gcq-alert.good>p{ color:#0f6b4d; }
.gcq-coach-body{ min-height:40px; }
.gcq-coach-text{ font-size:14px; line-height:1.85; color:#2b3a4a; background:linear-gradient(135deg,#f2f8ff,#eef4fb); border:1px solid #dce8f4; border-radius:12px; padding:14px 16px; }
.gcq-coach-actions{ margin-top:10px; }
#gcqCoachMeta{ font-weight:400; color:#93a0af; font-size:12px; }
/* ── v87：招生作战台 权限 + 历次作战归档 ── */
.rg-readonly{ font-size:12.5px; color:#8fa7bd; align-self:center; }
.rg-hist-rate{ font-weight:800; padding:2px 9px; border-radius:999px; font-size:12.5px; }
.rg-hist-rate.ok{ background:rgba(54,194,117,.16); color:#2f9e5f; }
.rg-hist-rate.mid{ background:rgba(226,170,56,.16); color:#b7791f; }
.rg-hist-rate.low{ background:rgba(224,82,82,.14); color:#c13e4d; }
.rg-del{ font-size:11.5px; color:#c13e4d; background:transparent; border:1px solid #e0b4b4; border-radius:7px; padding:3px 9px; cursor:pointer; }
.rg-del:hover{ background:#fdeef0; }
/* ── v88：招生作战台·定目标参谋 ── */
.rg-advice{ background:linear-gradient(135deg,rgba(37,199,232,.06),rgba(37,199,232,.02)); border:1px solid rgba(37,199,232,.2); border-radius:16px; padding:16px 18px; margin:0 0 18px; }
.rg-advice-head{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.rg-advice-head strong{ font-size:15px; color:#dff5ff; }
.rg-advice-head span{ font-size:12px; color:#7fa7c0; }
.rg-advice-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media(max-width:760px){ .rg-advice-cards{ grid-template-columns:1fr; } }
.rg-ac{ background:rgba(3,15,24,.4); border:1px solid rgba(113,176,214,.16); border-radius:12px; padding:12px 14px; }
.rg-ac>span{ display:block; font-size:12px; color:#8fb6cd; margin-bottom:6px; }
.rg-ac>b{ display:block; font-size:22px; font-weight:900; color:#4fd6ef; }
.rg-ac>small{ display:block; font-size:11.5px; color:#7fa7c0; margin-top:4px; line-height:1.5; }
.rg-ac.muted>b{ color:#6f95af; }
.rg-ac.ai{ display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.rg-ac.ai>button{ font-size:13px; }
.rg-advice-text{ margin-top:12px; }
.rg-advice-loading{ font-size:13px; color:#8fb6cd; padding:8px 2px; }
.rg-advice-body{ font-size:13.5px; line-height:1.85; color:#dbe8f1; background:rgba(3,15,24,.35); border:1px solid rgba(37,199,232,.16); border-radius:12px; padding:14px 16px; }
.rg-advice-foot{ display:flex; align-items:center; gap:12px; margin-top:9px; font-size:12px; color:#7fa7c0; }
.rg-advice-regen{ font-size:12px; color:#4fd6ef; background:transparent; border:1px solid rgba(37,199,232,.3); border-radius:8px; padding:4px 11px; cursor:pointer; }
/* ── v90：计算打卡后台 ── */
.ck-adm-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.ck-adm-head h3{ margin:0; }
.ck-adm-sel{ background:rgba(3,15,24,.5); border:1px solid rgba(113,176,214,.25); border-radius:9px; color:#dbe8f1; padding:5px 10px; }
.ck-adm-badge{ font-size:12px; color:#8fb6cd; background:rgba(37,199,232,.08); border:1px solid rgba(37,199,232,.18); border-radius:999px; padding:3px 11px; }
.ck-camp-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.ck-camp-card{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(500px,1.65fr) auto;gap:22px;align-items:center;padding:18px 20px;border:1px solid rgba(113,176,214,.12);border-radius:16px;background:linear-gradient(135deg,rgba(18,38,56,.92),rgba(16,32,49,.72));box-shadow:0 8px 22px rgba(0,0,0,.08)}
.ck-camp-identity{min-width:0}.ck-camp-identity h4{margin:0;color:#f2f7fb;font-size:16px;line-height:1.45;font-weight:850}.ck-camp-identity>span{display:inline-flex;align-items:center;margin-top:8px;padding:4px 9px;border:1px solid rgba(37,199,232,.18);border-radius:999px;background:rgba(37,199,232,.07);color:#92c7db;font-size:11px}
.ck-camp-metrics{min-width:0;display:grid;grid-template-columns:minmax(180px,1.8fr) repeat(4,minmax(64px,.72fr));align-items:center;border-left:1px solid rgba(113,176,214,.12);border-right:1px solid rgba(113,176,214,.12)}
.ck-camp-metrics>div{min-width:0;padding:4px 13px;text-align:center}.ck-camp-metrics small{display:block;margin-bottom:7px;color:#779bb3;font-size:11px;white-space:nowrap}.ck-camp-metrics b{display:block;color:#eef6fc;font-size:17px;line-height:1.25;white-space:nowrap}.ck-camp-metrics b em{margin-left:2px;color:#b7cbd8;font-size:11px;font-style:normal;font-weight:600}.ck-camp-metrics .date{text-align:left}.ck-camp-metrics .date b{font-size:12.5px;letter-spacing:.1px}.ck-camp-metrics .tag{display:inline-flex;white-space:nowrap}
.ck-camp-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}.ck-camp-actions .btn-small{height:42px;margin:0;padding:0 14px;white-space:nowrap}.ck-camp-actions .btn-primary{min-width:76px}.ck-camp-actions .btn-ghost{min-width:118px}.ck-camp-actions .btn-danger{min-width:58px;padding:0 11px}
@media(max-width:1240px){.ck-camp-card{grid-template-columns:minmax(260px,1fr) minmax(500px,1.7fr)}.ck-camp-actions{grid-column:1/-1;justify-content:flex-end;padding-top:4px}.ck-camp-metrics{border-right:0}}
@media(max-width:760px){.ck-camp-card{grid-template-columns:1fr;gap:15px}.ck-camp-metrics{grid-template-columns:1.6fr repeat(2,1fr);border:0}.ck-camp-metrics>div{padding:7px 5px}.ck-camp-metrics>div:nth-child(4),.ck-camp-metrics>div:nth-child(5){margin-top:4px}.ck-camp-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.ck-camp-actions .btn-primary{grid-column:1/-1}.ck-camp-actions .btn-small{width:100%;min-width:0}}
.ck-linkbox{ display:flex; gap:10px; align-items:center; margin:10px 0 6px; }
.ck-linktxt{ flex:1; font-size:12.5px; color:#9fd4e8; background:rgba(3,15,24,.5); border:1px solid rgba(37,199,232,.2); border-radius:9px; padding:9px 12px; word-break:break-all; }
.ck-grp-block{ margin-top:14px; }
.ck-grp-h{ font-size:13px; font-weight:800; color:#8fb6cd; margin-bottom:8px; }
.ck-daygrid{ display:grid; grid-template-columns:repeat(7,1fr); gap:7px; }
@media(max-width:560px){ .ck-daygrid{ grid-template-columns:repeat(5,1fr); } }
.ck-daychip{ display:flex; flex-direction:column; align-items:center; gap:1px; border:1px solid rgba(113,176,214,.2); background:rgba(3,15,24,.4); color:#b9c8d6; border-radius:10px; padding:8px 2px; font-weight:800; font-size:14px; cursor:pointer; }
.ck-daychip small{ font-weight:400; font-size:9.5px; color:#7fa7c0; }
.ck-daychip.ok{ background:linear-gradient(135deg,rgba(38,194,129,.22),rgba(38,194,129,.08)); border-color:rgba(38,194,129,.5); color:#8ff0c4; }
.ck-daychip:hover{ border-color:rgba(37,199,232,.5); }
.ck-qrow{ display:grid; grid-template-columns:24px 1.4fr 1fr; gap:8px; align-items:center; margin-bottom:8px; }
.ck-qrow>span{ text-align:center; color:#8fb6cd; font-size:12px; }
.ck-qrow input{ background:rgba(3,15,24,.5); border:1px solid rgba(113,176,214,.2); border-radius:9px; color:#dbe8f1; padding:9px 11px; font-size:14px; }
.ck-qrow input:focus{ border-color:rgba(37,199,232,.5); outline:none; }
/* v90c：链接框可一键全选，便于HTTP下手动复制 */
.ck-linktxt{ cursor:text; user-select:all; -webkit-user-select:all; }

/* ── v91 计算打卡：统一在线批阅打分 ── */
.modal-wide{ max-width:860px!important; width:94vw!important; }
/* 出题：题目图上传 */
.ck-imgup{ margin:6px 0 4px; }
.ck-imgbox{ display:flex; flex-wrap:wrap; gap:8px; min-height:10px; }
.ck-imgt{ position:relative; width:96px; height:96px; border-radius:10px; overflow:hidden; border:1px solid rgba(113,176,214,.25); background:rgba(3,15,24,.4); }
.ck-imgt img{ width:100%; height:100%; object-fit:cover; }
.ck-imgt>button{ position:absolute; top:2px; right:2px; width:22px; height:22px; border:0; border-radius:50%; background:rgba(200,30,50,.9); color:#fff; font-size:15px; line-height:22px; cursor:pointer; padding:0; }
.ck-imgt.ck-imgload{ display:flex; align-items:center; justify-content:center; color:#8fb6cd; font-size:12px; }
.ck-imgempty{ color:#7fa7c0; font-size:12.5px; padding:8px 2px; }
.ck-imgadd{ display:inline-block; margin-top:10px; border:1px dashed rgba(37,199,232,.45); color:#9fd4e8; border-radius:10px; padding:10px 16px; font-size:13.5px; cursor:pointer; }
.ck-imgadd input{ display:none; }
.ck-adv{ margin:12px 0; border-top:1px solid rgba(113,176,214,.15); padding-top:10px; }
.ck-adv summary{ cursor:pointer; color:#c9a24a; font-size:13px; font-weight:700; }
.ck-switch{ display:flex; align-items:center; gap:8px; color:#dbe8f1; font-size:13.5px; margin:8px 0; }
/* 批阅入口 */
.ck-review-cta .btn-primary{ margin-top:8px; }
.ck-pending-badge{ font-size:12px; color:#ffd9b8; background:rgba(234,88,12,.16); border:1px solid rgba(234,88,12,.4); border-radius:999px; padding:3px 11px; font-weight:700; }
/* 批阅列表 */
.ck-rev-tabs{ display:flex; align-items:center; gap:8px; margin:6px 0 12px; }
.ck-rev-tabs>button{ border:1px solid rgba(113,176,214,.25); background:rgba(3,15,24,.4); color:#b9c8d6; border-radius:9px; padding:6px 14px; font-size:13px; cursor:pointer; }
.ck-rev-tabs>button.on{ background:linear-gradient(135deg,#25c7e8,#1b96c9); border-color:transparent; color:#04121a; font-weight:800; }
.ck-rev-list{ display:grid; grid-template-columns:1fr 1fr; gap:12px; max-height:70vh; overflow:auto; }
@media(max-width:640px){ .ck-rev-list{ grid-template-columns:1fr; } }
.ck-rev-card{ border:1px solid rgba(113,176,214,.2); background:rgba(3,15,24,.35); border-radius:12px; padding:11px; }
.ck-rev-card.done{ opacity:.85; border-color:rgba(38,194,129,.4); }
.ck-rev-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.ck-rev-top b{ color:#eaf3fa; font-size:15px; }
.ck-rev-top span{ color:#8fb6cd; font-size:12px; }
.ck-rev-q{ display:inline-block; margin-left:6px; background:rgba(37,199,232,.15); border:1px solid rgba(37,199,232,.35); color:#9fd4e8; border-radius:6px; padding:0 7px; font-size:11px; text-decoration:none; }
.ck-rev-mid{ display:flex; gap:10px; }
.ck-rev-photo{ width:130px; height:170px; object-fit:cover; border-radius:9px; border:1px solid rgba(113,176,214,.25); flex:0 0 auto; }
.ck-rev-nophoto{ width:130px; height:170px; display:flex; align-items:center; justify-content:center; text-align:center; color:#7fa7c0; font-size:12px; border:1px dashed rgba(113,176,214,.3); border-radius:9px; flex:0 0 auto; }
.ck-rev-info{ flex:1; min-width:0; }
.ck-scorebtns{ display:grid; grid-template-columns:repeat(5,1fr); gap:5px; }
.ck-sb{ display:flex; flex-direction:column; align-items:center; gap:1px; border:1px solid rgba(113,176,214,.25); background:rgba(3,15,24,.4); color:#c4d3e0; border-radius:9px; padding:6px 2px; font-size:12px; font-weight:700; cursor:pointer; }
.ck-sb small{ font-weight:400; font-size:10px; color:#7fa7c0; }
.ck-sb.on{ background:linear-gradient(135deg,#7c4dff,#9d6bff); border-color:transparent; color:#fff; }
.ck-sb.on small{ color:#e8dcff; }
.ck-exc{ display:flex; align-items:center; gap:7px; color:#ffd98a; font-size:13px; margin:9px 0 7px; cursor:pointer; }
.ck-revnote{ width:100%; background:rgba(3,15,24,.5); border:1px solid rgba(113,176,214,.2); border-radius:9px; color:#dbe8f1; padding:8px 10px; font-size:13px; }
.ck-revnote:focus{ border-color:rgba(37,199,232,.5); outline:none; }
.ck-rev-actions{ display:flex; gap:8px; margin-top:9px; }
.ck-rev-score{ color:#a98bff; font-size:20px; font-weight:900; }
.ck-rev-score em{ font-style:normal; font-size:12px; color:#ffd98a; margin-left:6px; }
.ck-rev-note{ color:#c4d3e0; font-size:13px; margin:4px 0; }
.ck-rev-anno{ display:inline-block; color:#ff9c9c; font-size:12px; text-decoration:none; margin-right:8px; }
/* 红笔圈画浮层 */
.ck-anno-ov{ position:fixed; inset:0; z-index:9999; background:rgba(4,10,16,.94); display:flex; flex-direction:column; }
.ck-anno-bar{ display:flex; align-items:center; gap:8px; padding:10px 14px; background:rgba(3,15,24,.9); border-bottom:1px solid rgba(113,176,214,.2); }
.ck-anno-bar b{ color:#eaf3fa; font-size:14px; }
.ck-anno-bar button{ border:1px solid rgba(113,176,214,.3); background:rgba(3,15,24,.5); color:#c4d3e0; border-radius:8px; padding:7px 13px; font-size:13px; cursor:pointer; }
.ck-anno-bar button.save{ background:linear-gradient(135deg,#26c281,#1ea86b); border-color:transparent; color:#fff; font-weight:800; }
.ck-anno-stage{ flex:1; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:6px; }
.ck-anno-stage canvas{ touch-action:none; background:#fff; border-radius:6px; box-shadow:0 8px 30px rgba(0,0,0,.5); cursor:crosshair; max-width:100%; max-height:100%; }

/* v92 通话质量看板：待复盘卡片时间/删除 + 复盘详情弹窗 */
.gcq-rtime{font-weight:600;color:var(--gcq-muted);font-size:11px;margin-left:6px}
.gcq-review .sc{}
.gcq-review .gcq-del{background:transparent;border-color:rgba(224,82,82,.4);color:#e0798a}
.gcq-review .gcq-del.armed{background:var(--gcq-red);border-color:var(--gcq-red);color:#fff}
.gcqv-meta{color:var(--muted,#94a3b8);font-size:13px;margin:-4px 0 12px}
.gcqv-scores{display:flex;gap:10px;margin-bottom:14px}
.gcqv-s{flex:1;background:rgba(124,77,255,.08);border:1px solid rgba(124,77,255,.2);border-radius:10px;padding:10px;text-align:center}
.gcqv-s b{display:block;font-size:22px;font-weight:900;color:#a98bff}
.gcqv-s.big b{color:#7c4dff}
.gcqv-s span{font-size:11px;color:var(--muted,#94a3b8)}
.gcqv-block{margin:12px 0}
.gcqv-block h4{margin:0 0 6px;font-size:13px;color:var(--ink,#e2e8f0)}
.gcqv-block p{margin:0;font-size:13px;line-height:1.7;color:var(--muted,#cbd5e1)}
.gcqv-raw{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:9px 11px;white-space:pre-wrap}
.gcqv-dims{display:flex;flex-direction:column;gap:6px}
.gcqv-dim{display:grid;grid-template-columns:70px 1fr 24px;gap:8px;align-items:center;font-size:12px;color:var(--muted,#cbd5e1)}
.gcqv-dim i{display:block;height:8px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.gcqv-dim i b{display:block;height:100%;border-radius:99px}
.gcqv-dim em{font-style:normal;font-weight:800;text-align:right}
.gcqv-cmt{margin-top:8px!important;font-size:12px;color:var(--muted,#94a3b8)}
.gcqv-kp{display:grid;grid-template-columns:88px 1fr;gap:8px;margin-bottom:6px;font-size:13px}
.gcqv-kp span{color:var(--muted,#94a3b8)}
.gcqv-kp p{color:var(--ink,#e2e8f0)}
.gcqv-tags{display:flex;flex-wrap:wrap;gap:6px}
.gcqv-tags span{background:rgba(224,82,82,.12);border:1px solid rgba(224,82,82,.3);color:#e0798a;border-radius:7px;padding:3px 9px;font-size:12px}
/* ── 知识库：分类筛选 + 全文查看 ── */
.gcx-kb-cat{cursor:pointer;transition:all .15s;user-select:none}
.gcx-kb-cat:hover{background:rgba(32,183,216,.22);border-color:rgba(32,183,216,.45)}
.gcx-kb-cat.active{background:#20b7d8;border-color:#20b7d8;color:#08222b}
.gcx-kb-cat.active b{color:#08222b}
.gcx-kb-body{flex:1;min-width:0;cursor:pointer;border-radius:8px}
.gcx-kb-body:hover h3{color:#5eead4}
.gcx-kb-more{display:inline-block;margin-top:7px;font-size:11px;color:#20b7d8;opacity:.75}
.gcx-kb-body:hover .gcx-kb-more{opacity:1;text-decoration:underline}
.kb-view-meta{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.kb-view-meta span{background:rgba(32,183,216,.1);border:1px solid rgba(32,183,216,.2);color:#7dd3e8;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700}
.kb-view-meta .kb-on{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.35);color:#34d399}
.kb-view-meta .kb-off{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.35);color:#f87171}
.kb-view-content{white-space:pre-wrap;line-height:1.85;font-size:13.5px;color:rgba(255,255,255,.88);background:#1b2130;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px 18px;max-height:56vh;overflow-y:auto;margin-bottom:14px}
/* ═════ 项目分离（v95）：状态条 + 项目主题色 ═════ */
#pjBar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 22px;border-bottom:1px solid rgba(255,255,255,.09);backdrop-filter:blur(10px);background:linear-gradient(90deg,rgba(59,45,110,.94),rgba(27,33,64,.94))}
.pj-cur{font-size:13px;color:rgba(255,255,255,.85);display:flex;align-items:center;gap:6px;min-width:0}
.pj-cur b{font-size:14.5px;color:#fff;white-space:nowrap}
.pj-hint{font-size:11px;color:rgba(255,255,255,.45);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pj-switch{display:flex;gap:6px;flex-shrink:0}
.pj-switch button{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:rgba(255,255,255,.78);border-radius:999px;padding:5px 14px;font-size:12px;font-weight:800;cursor:pointer;transition:all .15s}
.pj-switch button:hover{background:rgba(255,255,255,.16)}
.pj-switch button.on{background:#8b7cf6;border-color:#8b7cf6;color:#120b2e}
/* 书法 = 墨绿主题 */
body[data-project="书法"] #pjBar{background:linear-gradient(90deg,rgba(13,74,53,.95),rgba(10,46,35,.94))}
body[data-project="书法"] .pj-switch button.on{background:#2ea36f;border-color:#2ea36f;color:#04160e}
body[data-project="书法"] .sidebar{background:radial-gradient(120% 90% at 85% -10%,#14523c 0%,#0e3b2e 38%,#0a2a20 70%,#071d17 100%)!important;border-right-color:rgba(46,163,111,.28)!important}
body[data-project="书法"] .brand-mark{background:linear-gradient(135deg,#2ea36f,#1d7a4f)!important}
/* 数学 = 深蓝主题 */
body[data-project="数学"] #pjBar{background:linear-gradient(90deg,rgba(17,63,116,.95),rgba(11,34,64,.94))}
body[data-project="数学"] .pj-switch button.on{background:#3b82f6;border-color:#3b82f6;color:#04101f}
body[data-project="数学"] .sidebar{background:radial-gradient(120% 90% at 85% -10%,#1b4a86 0%,#123763 38%,#0d2646 70%,#081a30 100%)!important;border-right-color:rgba(59,130,246,.28)!important}
body[data-project="数学"] .brand-mark{background:linear-gradient(135deg,#3b82f6,#2563eb)!important}
/* 「全部」态下操作页导航变暗提示 */
#nav .pj-dim{opacity:.32;filter:saturate(.3)}

/* 多学科统一首页 */
.school-overview-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;margin-bottom:20px;border:1px solid rgba(72,223,255,.2);border-radius:18px;background:linear-gradient(135deg,rgba(24,94,122,.26),rgba(15,23,42,.72))}
.school-overview-hero>div:first-child{display:grid;gap:4px}.school-overview-hero span{color:var(--muted);font-size:13px}.school-overview-hero b{font-size:36px;color:#e8fbff}.school-overview-hero small{color:#91afc4}
.school-overview-actions{display:flex;gap:9px;flex-wrap:wrap}.school-overview-actions button{border:1px solid rgba(72,223,255,.25);background:rgba(7,27,42,.7);color:#bcefff;border-radius:10px;padding:9px 13px;cursor:pointer}
.home-drill-kpis>.home-kpi-link{display:block;padding:0;border:0;background:none;text-align:left;color:inherit;cursor:pointer}.home-drill-kpis>.home-kpi-link .dc-card{height:100%;transition:.18s ease}.home-drill-kpis>.home-kpi-link:hover .dc-card{transform:translateY(-2px);border-color:rgba(72,223,255,.42)}
.multi-subject-section{margin:20px 0}.multi-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}.multi-subject-card{border:1px solid color-mix(in srgb,var(--subject-color) 38%,transparent);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--subject-color) 9%,#071521),rgba(8,19,31,.92));padding:16px}.multi-subject-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.multi-subject-card header>div{display:flex;align-items:center;gap:9px}.multi-subject-card header i{width:9px;height:28px;border-radius:5px;background:var(--subject-color);box-shadow:0 0 16px var(--subject-color)}.multi-subject-card h3{margin:0}.multi-subject-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.multi-subject-kpis button{display:grid;gap:4px;padding:11px;border:1px solid rgba(148,163,184,.14);border-radius:11px;background:rgba(2,12,22,.44);color:inherit;text-align:left;cursor:pointer}.multi-subject-kpis button:hover{border-color:var(--subject-color)}.multi-subject-kpis span{font-size:12px;color:var(--muted)}.multi-subject-kpis b{font-size:18px}.multi-subject-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.multi-subject-card footer span{padding:4px 8px;border-radius:999px;background:rgba(148,163,184,.1);font-size:11px;color:#9eb6c8}
@media(max-width:900px){.multi-subject-grid{grid-template-columns:1fr}.school-overview-hero{align-items:flex-start;flex-direction:column}.multi-subject-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.student-subject-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;margin-bottom:14px;border:1px solid rgba(56,189,248,.28);border-radius:12px;background:rgba(14,116,144,.08)}.student-subject-banner>div{display:grid;margin-right:auto}.student-subject-banner>div span{font-size:12px;color:var(--muted)}.student-subject-banner button{display:grid;gap:2px;min-width:130px;padding:8px 11px;border:1px solid rgba(56,189,248,.22);border-radius:9px;background:rgba(7,24,38,.62);color:inherit;text-align:left;cursor:pointer}.student-subject-banner button small{color:var(--muted)}
/* 锁定的项目下拉框 */
select.pj-locked{border-style:dashed!important;opacity:.9;cursor:not-allowed}
/* 隐藏旧的项目切换控件（统一走顶部状态条） */
.project-toggle,.project-switch{display:none!important}
#mobileProjectFilter{display:none!important}
@media(max-width:760px){#pjBar{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 12px}.pj-hint{white-space:normal}}
.finance-module-nav{display:flex;gap:8px;padding:8px;margin:0 0 16px;border:1px solid var(--border);border-radius:14px;background:rgba(8,25,38,.65);overflow:auto}.finance-module-nav button{white-space:nowrap;border:0;border-radius:10px;padding:10px 16px;color:var(--muted);background:transparent;cursor:pointer}.finance-module-nav button:hover,.finance-module-nav button.active{color:#fff;background:rgba(73,156,255,.18)}
.finance-foundation-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;margin-bottom:12px;border-radius:14px;background:linear-gradient(135deg,rgba(45,175,159,.15),rgba(45,113,190,.12));border:1px solid rgba(88,214,199,.2)}.finance-foundation-hero span,.finance-foundation-hero p{color:var(--muted);font-size:13px}.finance-foundation-hero strong{display:block;margin-top:5px;font-size:25px;color:#58d6c7}.finance-foundation-hero p{max-width:340px;line-height:1.6}
.account-setting-list{display:grid;gap:9px;margin:14px 0}.account-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}.account-setting-row p{margin:4px 0 0;color:var(--muted);font-size:12px}
.link-btn{padding:0;border:0;background:none;color:var(--blue);font:inherit;font-weight:700;cursor:pointer;text-align:left}.link-btn:hover{text-decoration:underline}
.family-contact-panel{margin-top:16px;padding:14px;border:1px solid rgba(88,214,199,.22);border-radius:14px;background:rgba(20,60,70,.16)}.family-contact-manage{display:grid;gap:9px;margin:14px 0}.family-contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:rgba(255,255,255,.025)}.family-contact-row strong{margin-right:7px}.family-contact-row p{margin:5px 0 0;color:var(--muted);font-size:13px}.family-contact-row>div:last-child{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:720px){.finance-foundation-hero{align-items:flex-start;flex-direction:column}.finance-module-nav{margin-left:-4px;margin-right:-4px}}

/* ===== 学员页工具条：搜索 + 筛选 + 计数 合并一行（2026-07） ===== */
.student-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px;padding:12px 14px;border:1px solid rgba(32,183,216,.18);border-radius:14px;background:linear-gradient(180deg,rgba(15,31,46,.92),rgba(8,19,31,.92))}
.student-toolbar .st-search{display:flex;gap:8px;flex:1 1 240px;min-width:200px;max-width:400px}
.student-toolbar .st-search input{flex:1;min-width:0;height:40px;padding:0 14px;border:1px solid rgba(32,183,216,.22);border-radius:9px;background:rgba(2,10,18,.56);color:var(--ink);outline:none}
.student-toolbar .st-search input:focus{border-color:rgba(32,183,216,.72);box-shadow:0 0 0 3px rgba(32,183,216,.12)}
.student-toolbar .st-filters{display:flex;flex-wrap:wrap;gap:8px;flex:3 1 460px;align-items:center}
.student-toolbar .st-filters select{flex:1 1 140px;min-width:120px;max-width:210px;height:40px;padding:0 12px;border:1px solid rgba(32,183,216,.18);border-radius:9px;background:rgba(2,10,18,.56);color:var(--ink);outline:none;cursor:pointer}
.student-toolbar .st-filters select:focus{border-color:rgba(32,183,216,.6)}
.student-toolbar .btn-small{height:40px;flex:0 0 auto}
.student-toolbar .st-count{margin-left:auto;flex:0 0 auto;color:var(--muted);font-size:13px;white-space:nowrap}
.student-toolbar .st-count b{color:var(--ink);font-size:15px;margin:0 2px}
.student-toolbar .st-count em{font-style:normal;color:var(--muted)}
.student-renew-tip{margin:0 0 12px}
.student-renew-tip .btn-small{border-color:#f0a12b;color:#c9781f}
@media(max-width:820px){
  .student-toolbar .st-search{flex:1 1 100%}
  .student-toolbar .st-count{margin-left:0;flex:1 1 100%}
}
@media(max-width:560px){
  .student-toolbar .st-filters select{flex:1 1 46%;max-width:none}
}

/* 线索·客户等级标签 + 已约天数 */
.lead-lv{display:inline-block;font-size:11px;font-weight:800;padding:1px 8px;border-radius:999px;vertical-align:middle;white-space:nowrap;line-height:1.55;border:1px solid transparent}
/* 三档成绩层次，色彩拉开：补差=橙红(需补) / 拔高=蓝(进阶) / 提升=绿(领先) */
.lead-lv.lvA{background:rgba(244,114,94,.15);color:#ff8a70;border-color:rgba(244,114,94,.4)}
.lead-lv.lvB{background:rgba(56,150,248,.16);color:#69b1ff;border-color:rgba(56,150,248,.42)}
.lead-lv.lvC{background:rgba(52,199,123,.16);color:#54d68a;border-color:rgba(52,199,123,.42)}
/* 姓名与等级标签同一行、标签在右；电话另起一行 */
.lead-idline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lead-idphone{display:block;margin-top:2px}
.dialx-name-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.dialx-shutdown-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border:1px solid rgba(255,126,78,.45);border-radius:999px;background:rgba(255,92,51,.15);color:#ff9b72;font-size:12px;font-style:normal;font-weight:800;line-height:1}
.dialx-row.is-shutdown{opacity:.82}
.dialx-row.is-shutdown td:first-child{border-left:3px solid #f0913b}
/* 可点击的 KPI 卡（已约访）*/
.dialx-kpi-click{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}
.dialx-kpi-click:hover{transform:translateY(-2px);border-color:rgba(139,124,246,.6);box-shadow:0 8px 22px rgba(139,124,246,.18)}
.dialx-kpi-click span{color:#c4b5fd}
/* 今日已约访名单弹窗 */
.dc-appt-modal{display:flex;flex-direction:column;gap:12px}
.dc-appt-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dc-appt-head h2{margin:0;font-size:17px}
.dc-appt-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}
.dc-appt-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid rgba(139,124,246,.22);background:rgba(139,124,246,.06);border-radius:10px;cursor:pointer;transition:background .12s,border-color .12s}
.dc-appt-row:hover{background:rgba(139,124,246,.12);border-color:rgba(139,124,246,.45)}
.dc-appt-main{flex:1;min-width:0}
.dc-appt-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dc-appt-name b{font-size:15px;font-weight:800}
.dc-appt-sub{margin-top:3px;font-size:12.5px;color:var(--muted)}
.dc-appt-note{margin-top:4px;font-size:12px;color:#8fb0c8;line-height:1.4}
.dc-appt-empty{text-align:center;padding:26px 12px;color:var(--muted);line-height:1.8}
.lead-stage-days{display:block;color:#f0a12b;font-size:11px;margin-top:2px;font-weight:600}
.lead-stage-days.warn{color:#ff8a70}
/* ── 新状态体系配色：待到校(紫)/未到校爽约(橙)/到校未报名(蓝)/无效(灰) ── */
.stage-pill.s-orange.active{border-color:rgba(240,145,59,.5);background:rgba(240,145,59,.12);color:#ffb877}
.stage-pill.s-orange.active .pill-count{background:rgba(240,145,59,.22);color:#ffb877}
.stage-pill.s-cyan.active{border-color:rgba(56,189,248,.5);background:rgba(56,189,248,.12);color:#8fdcff}
.stage-pill.s-cyan.active .pill-count{background:rgba(56,189,248,.22);color:#8fdcff}
.stage-pill.s-gray.active{border-color:rgba(148,163,184,.45);background:rgba(148,163,184,.12);color:#c3ceda}
.stage-pill.s-gray.active .pill-count{background:rgba(148,163,184,.22);color:#c3ceda}
.lead-row-pill.orange{color:#ffb877;background:rgba(240,145,59,.14)}
.lead-row-pill.cyan{color:#8fdcff;background:rgba(56,189,248,.14)}
.tag.orange{background:rgba(240,145,59,.12);color:#ffb877}
.tag.cyan{background:rgba(56,189,248,.12);color:#8fdcff}
/* 电邀中心：行左色条 */
.dialx-row.stage-booked td:first-child{border-left:3px solid var(--dx-purple)}
.dialx-row.stage-noshow td:first-child{border-left:3px solid #f0913b}
.dialx-row.stage-visited td:first-child{border-left:3px solid #38bdf8}
.dialx-row.stage-enrolled td:first-child{border-left:3px solid var(--dx-green)}
.dialx-row.stage-invalid td:first-child{border-left:3px solid #5e6b78}
/* 电邀中心：阶段胶囊 */
.dialx-stage{display:inline-flex;align-items:center;height:22px;border-radius:7px;padding:0 8px;font-size:11.5px;font-weight:800;background:#173149;color:#9fc0d8;white-space:nowrap}
.dialx-stage.new{background:#073145;color:#31d6f2}
.dialx-stage.follow{background:#3b2d0c;color:#f6c047}
.dialx-stage.booked{background:#28225f;color:#9c89ff}
.dialx-stage.noshow{background:#3a2711;color:#ffab5e}
.dialx-stage.visited{background:#0d2f45;color:#5cc8f5}
.dialx-stage.enrolled{background:#0b3d2a;color:#35d987}
.dialx-stage.lost,.dialx-stage.invalid{background:#222a32;color:#83909b}
/* 电邀中心：筛选 chip 圆点 */
.dialx-chip.orange i{background:#f0913b}
.dialx-chip.cyan i{background:#38bdf8}
/* 意向度分类管理弹窗 */
.fi-modal h2 small{font-size:12px;color:var(--muted);font-weight:600;margin-left:6px}
.fi-list{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;min-height:36px}
.fi-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:rgba(226,170,56,.12);border:1px solid rgba(226,170,56,.32);color:#ffd47a;font-weight:700;font-size:13px}
.fi-chip button{border:none;background:rgba(255,255,255,.12);color:#ffd47a;width:18px;height:18px;border-radius:50%;cursor:pointer;line-height:1;font-size:13px;display:grid;place-items:center}
.fi-chip button:hover{background:rgba(255,111,123,.35);color:#fff}
.fi-add{display:flex;gap:8px}
.fi-add input{flex:1}

/* 线索批量修改条 */
.lead-batch-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 12px;padding:11px 14px;border:1px solid rgba(32,183,216,.28);border-radius:12px;background:linear-gradient(180deg,rgba(15,31,46,.9),rgba(8,19,31,.9))}
.lead-batch-bar .lead-batch-all{display:flex;align-items:center;gap:7px;color:#cfe0ee;font-size:13px;cursor:pointer}
.lead-batch-bar span{color:#a8c4d8;font-size:13px}
.lead-batch-bar b{color:#25c3df;font-size:15px;margin:0 2px}
.lead-batch-bar .btn-small{margin-left:auto}
.lead-batch-bar .btn-small + .btn-small{margin-left:0}

/* ══════ 电话跟进弹窗 · UI 精修 v2（仅样式，功能不变）══════ */
/* 弹窗加宽，双列表单更舒展 */
#modal .modal-card:has(.follow-redesign){max-width:860px}
.follow-redesign{gap:0}
.follow-redesign-head{margin-bottom:6px}
.follow-redesign-head h2{font-size:22px;font-weight:900;letter-spacing:.3px}
.follow-redesign .follow-link{border-radius:999px;padding:7px 14px;border:1px solid rgba(56,189,248,.3);background:rgba(56,189,248,.08);color:#7cd3f5;font-weight:800;transition:.14s}
.follow-redesign .follow-link:hover{background:rgba(56,189,248,.16);border-color:rgba(56,189,248,.5)}
/* 每个区块做成独立卡片，分区一目了然 */
.follow-redesign .follow-section{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.012));border:1px solid rgba(120,160,190,.14);border-radius:16px;padding:16px 18px 18px;margin-bottom:14px;border-bottom:1px solid rgba(120,160,190,.14)}
.follow-redesign .follow-section:last-child{margin-bottom:0}
.follow-redesign .follow-section-label{font-size:13px;font-weight:900;color:#bcd4e6;letter-spacing:.4px;padding-left:13px;position:relative;margin-bottom:14px}
.follow-redesign .follow-section-label::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:15px;border-radius:3px;background:linear-gradient(180deg,#38bdf8,#6366f1)}
.follow-redesign .follow-section-label span{color:#7f9bb3;font-weight:700}
/* 拨打卡片 */
.follow-redesign .follow-dial-bar{background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(99,102,241,.08));border:1px solid rgba(56,189,248,.24);border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.follow-redesign .follow-dial-avatar{width:50px;height:50px;box-shadow:0 6px 18px rgba(99,102,241,.4)}
.follow-redesign .follow-dial-phone{font-size:17px}
.follow-redesign .follow-dial-judges{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.follow-redesign .fdj{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:12px;color:#dbe7f2;font-weight:800}
.follow-redesign .fdj b{color:#7f9bb3;font-weight:700}
.follow-redesign .follow-dial-call{background:linear-gradient(135deg,#38bdf8,#2b8fdb);color:#04121e;border-radius:11px;padding:11px 20px;font-size:15px;box-shadow:0 8px 18px rgba(56,189,248,.36);transition:.14s}
.follow-redesign .follow-dial-call:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(56,189,248,.5)}
.follow-redesign .follow-dial-copy{border-radius:11px;padding:11px 18px;transition:.14s}
.follow-redesign .follow-dial-copy:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24)}
.follow-redesign .follow-record-hint{border-radius:12px;margin-top:12px}
/* 历史记录卡片 */
.follow-redesign .follow-hist-item{background:rgba(4,14,22,.5);border:1px solid rgba(120,160,190,.15);border-left-width:4px;border-radius:13px;padding:14px 16px;transition:.15s}
.follow-redesign .follow-hist-item:hover{background:rgba(4,14,22,.7);border-left-color:#38bdf8}
.follow-redesign .follow-hist-title strong{font-size:15px}
.follow-redesign .fbadge{border-radius:999px;padding:3px 11px;font-weight:800;font-size:11.5px}
.follow-redesign .follow-hist-summary-part{border-radius:11px;background:rgba(56,189,248,.07);border:1px solid rgba(56,189,248,.16);padding:10px 12px}
.follow-redesign .follow-hist-summary-part b{color:#5cc8f5}
.follow-redesign .follow-hist-judges{gap:7px;margin-top:10px}
.follow-redesign .follow-hist-tag{background:rgba(255,255,255,.045);color:#8ea6bb;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:3px 10px;font-weight:700}
.follow-redesign .follow-hist-tag b{color:#6b8298;font-weight:800}
.follow-redesign .follow-ai-btn{border-radius:999px;margin-top:11px;padding:6px 14px;font-weight:800}
/* 表单：明显加大加粗 */
.follow-redesign .follow-form-grid{gap:16px 18px}
.follow-redesign .follow-form-grid label{font-size:13px;font-weight:900;color:#a9c1d5;gap:8px;letter-spacing:.2px}
.follow-redesign .follow-form-grid label small{color:#6f8ba1;font-weight:600;letter-spacing:0}
.follow-redesign .follow-form-grid input,.follow-redesign .follow-form-grid select,.follow-redesign .follow-form-grid textarea{border:1.6px solid rgba(120,165,200,.24);border-radius:13px;background:rgba(4,14,22,.6);padding:14px 15px;font-size:14px;font-weight:800;transition:.15s}
.follow-redesign .follow-form-grid input:hover,.follow-redesign .follow-form-grid select:hover,.follow-redesign .follow-form-grid textarea:hover{border-color:rgba(56,189,248,.5)}
.follow-redesign .follow-form-grid input:focus,.follow-redesign .follow-form-grid select:focus,.follow-redesign .follow-form-grid textarea:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.16);background:rgba(4,14,22,.9)}
.follow-redesign .follow-form-grid textarea{min-height:92px}
/* 底部按钮加大加圆 */
.follow-redesign .follow-bottom-actions{gap:11px;margin-top:20px}
.follow-redesign .follow-bottom-actions button{border-radius:12px;padding:13px 16px;font-size:14px;font-weight:800;transition:.12s}
.follow-redesign .follow-bottom-actions button:hover{filter:brightness(1.1);transform:translateY(-1px)}
.follow-redesign .follow-bottom-actions button:active{transform:translateY(1px)}
@media (max-width:640px){.follow-redesign .follow-section{padding:13px 13px 15px}}
/* 表单左右对齐：控件统一贴底，抵消提示行造成的高度差 */
.follow-redesign .follow-form-grid label{display:flex;flex-direction:column;gap:7px}
.follow-redesign .follow-form-grid label>input,.follow-redesign .follow-form-grid label>select,.follow-redesign .follow-form-grid label>textarea{margin-top:auto}
/* 意向度独立彩色标签（跟进中细分） */
.intent-tag{display:inline-block;margin-left:6px;font-size:11px;font-weight:800;line-height:1.55;padding:1px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap;vertical-align:middle}
.dialx-stage + .intent-tag{margin-left:6px}

/* ══════ 周工作台（执行单元循环）══════ */
.wtx{max-width:1040px}
.wtx-cheer{background:linear-gradient(135deg,rgba(246,192,71,.14),rgba(56,189,248,.1));border:1px solid rgba(246,192,71,.28);border-radius:14px;padding:15px 18px;font-size:16px;font-weight:700;margin-bottom:18px;line-height:1.6}
.wtx-cheer b{color:#ffd76a;font-size:19px}
.wtx-cards{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-bottom:18px}
.wtx-card{background:#101f30;border:1px solid rgba(120,160,190,.16);border-radius:16px;padding:16px 18px}
.wtx-card.big{border-color:rgba(246,192,71,.35);background:linear-gradient(180deg,rgba(246,192,71,.08),rgba(255,255,255,.01))}
.wtx-clabel{color:#8fa8bd;font-size:13px;font-weight:800;margin-bottom:8px}
.wtx-cmain{display:flex;align-items:baseline;gap:6px;margin-bottom:10px}
.wtx-cmain b{font-size:38px;font-weight:900;line-height:1}
.wtx-card.big .wtx-cmain b{color:#ffd76a}
.wtx-cmain span{color:#7f9bb3;font-size:18px;font-weight:800}
.wtx-csub{font-size:12.5px;color:#8fa8bd;font-weight:700;margin-top:2px}
.wtx-csub.muted{color:#5f7488}
.wtx-bar{height:9px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}
.wtx-bar i{display:block;height:100%;border-radius:6px;background:#f6c047}
.wtx-bar.green i{background:#35d987}.wtx-bar.cyan i{background:#38bdf8}.wtx-bar.amber i{background:#f6c047}
.wtx-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:18px}
.wtx-day{background:#101f30;border:1px solid rgba(120,160,190,.14);border-radius:12px;padding:11px 6px;text-align:center}
.wtx-day span{display:block;font-size:12px;color:#8fa8bd;font-weight:700;margin-bottom:5px}
.wtx-day b{display:block;font-size:18px;font-weight:900}
.wtx-day em{display:block;font-size:11px;color:#7f9bb3;font-style:normal;margin-top:3px}
.wtx-day.ok b{color:#35d987}.wtx-day.bad b{color:#ff6f7b}
.wtx-day.today{border-color:#38bdf8;background:rgba(56,189,248,.12)}.wtx-day.today b{color:#5cc8f5}
.wtx-day.future b,.wtx-day.none b{color:#7f9bb3}
.wtx-wk{background:#101f30;border:1px solid rgba(120,160,190,.16);border-radius:16px;padding:16px 18px;margin-bottom:16px}
.wtx-wk-title{font-size:13px;font-weight:900;color:#bcd4e6;margin-bottom:12px}
.wtx-wkrow{display:grid;grid-template-columns:52px 1fr 110px;align-items:center;gap:12px;margin-bottom:10px}
.wtx-wkrow:last-child{margin-bottom:0}
.wtx-wkrow span{color:#8fa8bd;font-weight:800;font-size:13px}
.wtx-wkrow b{text-align:right;font-weight:900;font-size:14px}
.wtx-sprint{text-align:center;color:#9fb6c9;font-size:14px;font-weight:700;padding:6px 0}
.wtx-sprint b{color:#ffd76a;font-size:17px}
.wtx-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.wtx-kpi{background:#101f30;border:1px solid rgba(120,160,190,.16);border-radius:16px;padding:15px 16px;border-top:3px solid #4a5a6a}
.wtx-kpi.amber{border-top-color:#f6c047}.wtx-kpi.green{border-top-color:#35d987}.wtx-kpi.cyan{border-top-color:#38bdf8}
.wtx-kpi span{color:#8fa8bd;font-size:13px;font-weight:800}
.wtx-kpi b{display:block;font-size:31px;font-weight:900;margin:6px 0 3px}
.wtx-kpi small{font-size:16px;color:#7f9bb3;font-weight:800}
.wtx-kpi i{font-size:12px;color:#8fa8bd;font-style:normal;font-weight:700}
.wtx-yday{background:rgba(56,189,248,.06);border:1px solid rgba(56,189,248,.16);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700;margin-bottom:16px;line-height:1.6}
.wtx-yday b{color:#5cc8f5;font-size:16px}
.wtx-v{color:#35d987;font-weight:800}.wtx-x{color:#ff8a70;font-weight:800}.wtx-mut{color:#7f9bb3;font-weight:700}
.wtx-board{width:100%;border-collapse:collapse;background:#101f30;border:1px solid rgba(120,160,190,.16);border-radius:16px;overflow:hidden;margin-bottom:8px}
.wtx-board th{background:#14273a;color:#8fb0cb;font-size:12.5px;font-weight:800;text-align:left;padding:12px 14px;white-space:nowrap}
.wtx-board td{padding:13px 14px;border-top:1px solid rgba(120,160,190,.1);font-size:14px;font-weight:700}
.wtx-board td:first-child{font-weight:900}
.wtx-board tr[data-wt-user]{cursor:pointer}
.wtx-board tr[data-wt-user]:hover{background:rgba(56,189,248,.06)}
.wtx-board tr.bad td:first-child{border-left:3px solid #ff6f7b}
.wtx-board tr.bad{background:rgba(255,111,123,.05)}
.wtx-mini{font-size:11.5px;font-weight:800;padding:1px 7px;border-radius:999px;margin-left:4px}
.wtx-mini.ok{background:rgba(53,217,135,.16);color:#54d68a}.wtx-mini.bad{background:rgba(255,111,123,.16);color:#ff8a70}
.wtx-prog{font-weight:800;color:#9fb6c9}.wtx-prog.bad{color:#ff8a70}
.wtx-empty{text-align:center;color:#7f9bb3;font-weight:600;padding:22px 12px!important}
.wtx-tg-table{width:100%;border-collapse:collapse;margin:6px 0 4px}
.wtx-tg-table th{color:#8fa8bd;font-size:12.5px;font-weight:800;text-align:left;padding:8px 10px;border-bottom:1px solid rgba(120,160,190,.16)}
.wtx-tg-table td{padding:7px 10px;border-bottom:1px solid rgba(120,160,190,.08)}
.wtx-tg-table td:first-child{font-weight:800;color:#cfe0ee;white-space:nowrap}
.wtx-tg-table td small{color:#7f9bb3;font-weight:600;margin-left:6px}
.wtx-tg-table input{width:100%;border:1px solid rgba(120,165,200,.24);border-radius:9px;background:rgba(4,14,22,.55);color:#e7f1fb;padding:9px 11px;font-weight:800;font:inherit}
.wtx-tg-table input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.15)}
.wtx-tg-past{opacity:.6}
@media (max-width:820px){.wtx-cards{grid-template-columns:1fr}.wtx-kpis{grid-template-columns:repeat(2,1fr)}.wtx-strip{grid-template-columns:repeat(4,1fr)}.wtx-board{display:block;overflow-x:auto}}
/* 周工作台：按天点击 + 校长设目标 */
.wtx-day.clickable{cursor:pointer;transition:border-color .12s,background .12s}
.wtx-day.clickable:hover{border-color:rgba(56,189,248,.5);background:rgba(56,189,248,.07)}
.wtx-day.realtoday{position:relative}
.wtx-day.realtoday::after{content:'今天';position:absolute;top:5px;right:7px;font-size:9px;color:#5cc8f5;font-weight:800;opacity:.9}
.wtx-focusbar{display:flex;align-items:center;gap:10px;background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.22);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:14px;font-weight:700;color:#cfe6f5}
.wtx-focusbar b{color:#5cc8f5}
.wtx-focusbar .btn-small{margin-left:auto}
.wtx-tg-pick{display:block;margin:10px 0 4px;font-weight:800;color:#cfe0ee}
.wtx-tg-pick select{margin-left:8px;min-width:140px}
/* 周工作台：当天拨打明细 */
.wtx-section-title{font-size:13px;font-weight:900;color:#bcd4e6;letter-spacing:.4px;margin:22px 0 12px;padding-left:12px;position:relative}
.wtx-section-title::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:15px;border-radius:3px;background:linear-gradient(180deg,#38bdf8,#6366f1)}
.wtc-modal h2{margin:0 0 12px;font-size:18px}
.wtc-head{font-size:13px;color:#9fb6c9;font-weight:700;margin-bottom:10px}
.wtc-head b{color:#5cc8f5;font-size:15px}
.wtc-wrap{max-height:56vh;overflow:auto;border:1px solid rgba(120,160,190,.14);border-radius:12px}
.wtc-table{width:100%;border-collapse:collapse;background:#101f30}
.wtc-table th{position:sticky;top:0;background:#14273a;color:#8fb0cb;font-size:12px;font-weight:800;text-align:left;padding:10px 12px;white-space:nowrap;z-index:1}
.wtc-table td{padding:10px 12px;border-top:1px solid rgba(120,160,190,.1);font-size:13.5px;color:#dbe7f2}
.wtc-table .wtc-index{width:44px;min-width:44px;padding-left:8px;padding-right:8px;text-align:center}
.wtc-time{font-family:Consolas,monospace;color:#9fc0d8;font-weight:800;white-space:nowrap}
.wtc-name{font-weight:800}
.wtc-phone{font-family:Consolas,monospace;color:#8fb0cb;white-space:nowrap}
.wtc-stage{color:#b9cee0}
.wtc-res{font-size:11.5px;font-weight:800;padding:1px 9px;border-radius:999px;white-space:nowrap}
.wtc-res.ok{background:rgba(53,217,135,.16);color:#54d68a}
.wtc-res.bad{background:rgba(255,111,123,.16);color:#ff8a70}
.wtc-empty{text-align:center;color:#7f9bb3;font-weight:600;padding:24px 12px;border:1px dashed rgba(120,160,190,.2);border-radius:12px}

/* 招生跟进：固定意向 + 主要顾虑多选 */
.main-concern-field{display:block!important;padding:12px 13px;border:1px solid rgba(113,176,214,.2);border-radius:12px;background:rgba(3,15,24,.34)}
.main-concern-title{margin-bottom:9px;color:#a9c1d5;font-size:13px;font-weight:900}
.main-concern-picker{display:flex;flex-wrap:wrap;gap:8px}
.main-concern-choice{appearance:none;border:1px solid rgba(120,165,200,.24);border-radius:999px;background:rgba(255,255,255,.035);color:#a9bfd0;padding:7px 12px;font-size:12px;font-weight:800;line-height:1.2;cursor:pointer;transition:.14s}
.main-concern-choice:hover{border-color:rgba(56,189,248,.55);color:#dff8ff}
.main-concern-choice.active{border-color:rgba(56,189,248,.72);background:linear-gradient(135deg,rgba(56,189,248,.22),rgba(99,102,241,.18));color:#72e7fa;box-shadow:0 0 0 2px rgba(56,189,248,.08)}
.main-concern-tag,.main-concern-more,.main-concern-empty{display:inline-flex;align-items:center;margin:3px 4px 0 0;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:800;line-height:1.45;white-space:nowrap}
.main-concern-tag{border:1px solid rgba(240,180,40,.25);background:rgba(240,180,40,.11);color:#f6c047}
.main-concern-more{border:1px solid rgba(56,189,248,.22);background:rgba(56,189,248,.1);color:#70dff2}
.main-concern-empty{padding-left:0;color:#66859c}
.follow-dial-concerns{display:flex;align-items:flex-start;gap:8px;margin-top:8px;color:#7898b1;font-size:11px}
.follow-dial-concerns>b{flex:0 0 auto;color:#7898b1;font-size:10px;line-height:22px}
.follow-dial-concerns>span{display:flex;flex-wrap:wrap;min-width:0}

/* 电邀中心直接展示“意向 + 顾虑”关键信息 */
.dialx-table col.stage{width:22%}
.dialx-table col.note{width:21%}
.dialx-key-info{margin-top:5px}
.dialx-intent{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:900;white-space:nowrap}
.dialx-intent.high{background:rgba(52,199,123,.16);color:#54d68a}
.dialx-intent.mid{background:rgba(240,180,40,.16);color:#f6c047}
.dialx-intent.pause{background:rgba(148,163,184,.15);color:#bdc9d5}
.dialx-intent.reject{background:rgba(244,114,94,.16);color:#ff8a70}
.dialx-intent.unrated{background:rgba(56,189,248,.1);color:#86b8d2}
.dialx-concerns{display:flex;align-items:center;flex-wrap:wrap;margin-top:1px;max-height:38px;overflow:hidden}
.dialx-table th{font-size:14px}
.dialx-stage-line{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;white-space:nowrap;min-width:max-content}
.dialx-stage-line .main-concern-tag,.dialx-stage-line .main-concern-more,.dialx-stage-line .main-concern-empty{margin:0}
@media(max-width:640px){
  .main-concern-choice{padding:7px 10px}
  .follow-dial-concerns{display:block}
  .follow-dial-concerns>b{display:block;margin-bottom:3px;line-height:1.4}
}

/* ═══════════════════════════════════════════════════════════════
   电邀中心 · 全体学生认知图谱 V1
   ═══════════════════════════════════════════════════════════════ */
.skm-page{
  --skm-bg:#07111d;
  --skm-panel:#0d1a29;
  --skm-panel-2:#112235;
  --skm-line:#21384c;
  --skm-text:#edf7ff;
  --skm-muted:#7f9ab3;
  --skm-cyan:#31c1cc;
  --skm-blue:#38aee8;
  --skm-green:#3dcc7c;
  --skm-amber:#f2b83d;
  --skm-purple:#917cff;
  color:var(--skm-text);
  min-width:0;
  padding:4px 0 28px;
}
.skm-page *{box-sizing:border-box}
.skm-page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
  padding:4px 2px 0;
}
.skm-page-head h2{
  margin:4px 0 7px;
  color:#f5fbff;
  font-size:28px;
  line-height:1.15;
  letter-spacing:.01em;
}
.skm-page-head p{
  margin:0;
  color:#819bb2;
  font-size:13px;
}
.skm-eyebrow{
  display:block;
  color:#e6bc58;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}
.skm-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.skm-view-switch{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:4px;
  border:1px solid #263e53;
  border-radius:10px;
  background:#0b1826;
}
.skm-view-switch button{
  height:34px;
  padding:0 15px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#809bb3;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.skm-view-switch button:hover{color:#d9ebf7}
.skm-view-switch button.active{
  background:#1c3449;
  color:#f2f9ff;
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset;
}
.skm-new-version-btn{
  align-self:center;
  height:38px;
  margin-left:auto;
  padding:0 18px;
  border:1px solid rgba(49,193,204,.68);
  border-radius:9px;
  background:rgba(49,193,204,.12);
  color:#82e4ea;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.skm-new-version-btn:hover{background:rgba(49,193,204,.2);color:#b8f5f7}
.skm-back-original{
  height:42px;
  padding:0 16px;
  border:1px solid #304a60;
  border-radius:10px;
  background:#122537;
  color:#b6cad9;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.skm-back-original:hover{border-color:#4a7189;color:#f0f8fd}
.skm-outline-btn{
  height:42px;
  padding:0 17px;
  border:1px solid rgba(49,193,204,.5);
  border-radius:10px;
  background:rgba(49,193,204,.08);
  color:#8eeaf0;
  font-weight:800;
  cursor:pointer;
}
.skm-outline-btn:hover{background:rgba(49,193,204,.15)}
.skm-kpis{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.skm-kpis article{
  position:relative;
  min-width:0;
  padding:13px 15px 12px;
  overflow:hidden;
  border:1px solid #20364a;
  border-radius:12px;
  background:linear-gradient(145deg,#0e1c2b,#0b1724);
}
.skm-kpis article:before{
  position:absolute;
  top:0;
  left:14px;
  width:40px;
  height:2px;
  border-radius:99px;
  background:#73869a;
  content:"";
}
.skm-kpis article.amber:before{background:var(--skm-amber)}
.skm-kpis article.cyan:before{background:var(--skm-cyan)}
.skm-kpis article.purple:before{background:var(--skm-purple)}
.skm-kpis article.green:before{background:var(--skm-green)}
.skm-kpis article.blue:before{background:var(--skm-blue)}
.skm-kpis span,.skm-kpis small{
  display:block;
  color:#6f8aa2;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.skm-kpis strong{
  display:block;
  margin:3px 0 2px;
  color:#f2f8fd;
  font-size:23px;
  line-height:1;
}
.skm-workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) 342px;
  gap:14px;
  align-items:start;
}
.skm-main{min-width:0}
.skm-toolbar{
  margin-bottom:12px;
  padding:11px 12px;
  border:1px solid #1f3548;
  border-radius:12px;
  background:#0d1c2b;
}
.skm-filter-row{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding-bottom:10px;
  scrollbar-width:thin;
}
.skm-filter-chip{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:7px;
  height:31px;
  padding:0 10px;
  border:1px solid #2a4256;
  border-radius:8px;
  background:#101f2f;
  color:#94aabf;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.skm-filter-chip b{
  min-width:20px;
  padding:2px 5px;
  border-radius:5px;
  background:rgba(255,255,255,.06);
  color:#bbccdc;
  font-size:10px;
}
.skm-filter-chip:hover{border-color:#3e647b;color:#d8e7f3}
.skm-filter-chip.active{
  border-color:rgba(49,193,204,.7);
  background:rgba(49,193,204,.13);
  color:#82e1e7;
}
.skm-filter-chip.active b{background:rgba(49,193,204,.2);color:#a4f2f5}
.skm-search-row{
  display:flex;
  align-items:flex-end;
  gap:8px;
}
.skm-search{
  display:block;
  flex:1;
  min-width:180px;
}
.skm-search span{
  display:block;
  margin:0 0 5px;
  color:#6f8da7;
  font-size:10px;
  font-weight:800;
}
.skm-search input{
  width:100%;
  height:36px;
  padding:0 12px;
  border:1px solid #263e53;
  border-radius:8px;
  outline:0;
  background:#091522;
  color:#eaf5fc;
  font-size:12px;
}
.skm-search input:focus{border-color:#31c1cc;box-shadow:0 0 0 2px rgba(49,193,204,.1)}
.skm-search-btn,.skm-clear-btn{
  height:36px;
  padding:0 14px;
  border:1px solid #2a4358;
  border-radius:8px;
  background:#14283b;
  color:#d9e8f3;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.skm-search-btn{border-color:#31aeb9;background:#229da7;color:#031b20}
.skm-clear-btn:hover{background:#1a3349}
.skm-canvas-card{
  overflow:hidden;
  border:1px solid #20394d;
  border-radius:14px;
  background:#091522;
  box-shadow:0 18px 55px rgba(0,0,0,.17);
}
.skm-canvas-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:50px;
  padding:9px 13px;
  border-bottom:1px solid #1b3043;
  background:#0e1c2a;
}
.skm-canvas-head strong{
  display:block;
  margin-bottom:2px;
  color:#dcecf7;
  font-size:12px;
}
.skm-canvas-head span{
  display:block;
  color:#6e879e;
  font-size:10px;
}
.skm-canvas-tools{
  display:flex;
  align-items:center;
  gap:5px;
}
.skm-zoom-readout{
  min-width:42px;
  margin-right:2px;
  color:#6f91aa;
  font-size:10px;
  font-weight:800;
  text-align:right;
}
.skm-canvas-tools button{
  min-width:30px;
  height:28px;
  padding:0 9px;
  border:1px solid #2a4255;
  border-radius:6px;
  background:#122336;
  color:#adc1d2;
  font-weight:800;
  cursor:pointer;
}
.skm-canvas-tools button:hover{border-color:#4e7188;color:#fff}
.skm-canvas-wrap{
  position:relative;
  height:540px;
  min-height:420px;
  overflow:hidden;
  background:
    radial-gradient(circle at 58% 36%,rgba(45,159,177,.055),transparent 38%),
    linear-gradient(#091522,#07121e);
}
.skm-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none}
.skm-canvas-hint{
  position:absolute;
  right:11px;
  bottom:9px;
  padding:5px 8px;
  border:1px solid rgba(81,111,135,.25);
  border-radius:6px;
  background:rgba(6,15,25,.72);
  color:#637d94;
  font-size:9px;
  pointer-events:none;
}
.skm-canvas-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#738da5;
  font-size:13px;
}
.skm-action-board{
  margin-top:12px;
  padding:13px;
  border:1px solid #1f3548;
  border-radius:13px;
  background:#0d1a28;
}
.skm-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.skm-section-head span{
  display:block;
  margin-bottom:3px;
  color:#e6bc58;
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
}
.skm-section-head strong{display:block;color:#dceaf5;font-size:13px}
.skm-section-head>small{max-width:360px;color:#68839b;font-size:9px;text-align:right}
.skm-action-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.skm-action-card{
  display:grid;
  grid-template-columns:34px minmax(100px,.75fr) minmax(120px,1.5fr) 48px;
  gap:9px;
  align-items:center;
  width:100%;
  min-width:0;
  min-height:62px;
  padding:8px 10px;
  border:1px solid #1e3447;
  border-radius:9px;
  background:#0a1724;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.skm-action-card:hover,.skm-action-card.active{
  border-color:#356279;
  background:#102235;
}
.skm-action-rank{
  color:#526d84;
  font:700 13px Consolas,monospace;
}
.skm-action-person,.skm-action-reason,.skm-action-score{min-width:0}
.skm-action-person b{display:block;color:#dcebf6;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.skm-action-person small{display:block;margin-top:3px;color:#6b879e;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.skm-action-reason{
  color:#91a8bb;
  font-size:10px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.skm-action-score{text-align:right}
.skm-action-score b{display:block;color:#efbd58;font-size:15px}
.skm-action-score small{display:block;color:#647d92;font-size:8px;white-space:nowrap}
.skm-detail{
  position:sticky;
  top:12px;
  min-width:0;
  max-height:calc(100vh - 28px);
  overflow:auto;
  border:1px solid #233d52;
  border-radius:14px;
  background:linear-gradient(155deg,#112235,#0c1927 56%);
  box-shadow:0 20px 55px rgba(0,0,0,.22);
  scrollbar-width:thin;
}
.skm-detail-sticky{padding:15px}
.skm-detail-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:13px;
  color:#6e8ba5;
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
}
.skm-detail-topline b{color:#79d7dd}
.skm-detail-person{
  display:flex;
  align-items:center;
  gap:11px;
  padding-bottom:12px;
  border-bottom:1px solid #21384b;
}
.skm-avatar{
  display:grid;
  flex:0 0 42px;
  width:42px;
  height:42px;
  place-items:center;
  border:1px solid rgba(49,193,204,.48);
  border-radius:12px;
  background:rgba(49,193,204,.1);
  color:#8be7ec;
  font-size:17px;
  font-weight:900;
}
.skm-detail-person h3{margin:0;color:#f0f8fd;font-size:19px}
.skm-detail-person p{margin:4px 0 2px;color:#8da5b9;font-size:10px}
.skm-detail-person small{display:block;color:#66829a;font-size:9px}
.skm-detail-tags{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}
.skm-tag{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 7px;
  border:1px solid rgba(136,158,179,.25);
  border-radius:6px;
  background:rgba(136,158,179,.09);
  color:#a9bac9;
  font-size:9px;
  font-weight:800;
}
.skm-tag.stage{border-color:rgba(56,174,232,.35);background:rgba(56,174,232,.11);color:#66c9f2}
.skm-tag.hot{border-color:rgba(61,204,124,.35);background:rgba(61,204,124,.11);color:#66dc98}
.skm-tag.warm{border-color:rgba(242,184,61,.35);background:rgba(242,184,61,.11);color:#f4c967}
.skm-tag.cold{border-color:rgba(240,122,106,.35);background:rgba(240,122,106,.11);color:#f4998c}
.skm-tag.level{border-color:rgba(145,124,255,.35);background:rgba(145,124,255,.11);color:#b3a6ff}
.skm-tag.concern{white-space:normal}
.skm-why,.skm-next{
  margin-top:10px;
  padding:11px;
  border:1px solid rgba(242,184,61,.25);
  border-radius:10px;
  background:rgba(242,184,61,.07);
}
.skm-why>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#dbb45f;
  font-size:10px;
  font-weight:800;
}
.skm-why>div b{font-size:15px}
.skm-why p,.skm-next p{margin:6px 0 0;color:#c8d6e1;font-size:11px;line-height:1.65}
.skm-next{border-color:rgba(49,193,204,.2);background:rgba(49,193,204,.055)}
.skm-next>span{color:#71d7de;font-size:10px;font-weight:800}
.skm-cognition-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin-top:11px;
}
.skm-cognition-grid>div{
  min-width:0;
  min-height:65px;
  padding:9px;
  border:1px solid #203649;
  border-radius:8px;
  background:rgba(5,15,25,.3);
}
.skm-cognition-grid>div.wide{grid-column:1/-1}
.skm-cognition-grid span{display:block;color:#6c869c;font-size:9px}
.skm-cognition-grid b{display:block;margin-top:5px;color:#d4e3ee;font-size:11px;line-height:1.4}
.skm-cognition-grid small{display:block;margin-top:4px;color:#587187;font-size:8px}
.skm-concern-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.skm-unset{color:#657e94;font-size:10px}
.skm-unset.block{display:block;padding:12px 0;text-align:center}
.skm-evidence{margin-top:13px}
.skm-section-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:7px;
  color:#829bae;
  font-size:10px;
  font-weight:800;
}
.skm-section-label b{color:#63c9d0}
.skm-evidence article{
  display:grid;
  grid-template-columns:9px 1fr;
  gap:7px;
  padding:7px 0;
  border-bottom:1px solid rgba(32,54,73,.65);
}
.skm-evidence article i{
  width:6px;
  height:6px;
  margin-top:4px;
  border:1px solid #46bbc5;
  border-radius:50%;
  background:#16323e;
}
.skm-evidence article span{display:block;color:#66839a;font-size:8px}
.skm-evidence article p{
  display:-webkit-box;
  margin:3px 0 0;
  overflow:hidden;
  color:#b5c6d3;
  font-size:10px;
  line-height:1.5;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
}
.skm-detail-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin:11px 0 2px;
  padding:10px 0;
  border-top:1px solid #21384b;
  border-bottom:1px solid #21384b;
}
.skm-detail-actions button{
  min-height:38px;
  padding:0 9px;
  border-radius:8px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.skm-primary{
  border:1px solid #31c1cc;
  background:#2ab4bf;
  color:#05171d;
}
.skm-primary:hover{background:#42cbd5}
.skm-secondary{
  border:1px solid #365269;
  background:#173047;
  color:#d9e8f3;
}
.skm-secondary:hover{background:#1c3b56}
.skm-tertiary{
  grid-column:1/-1;
  border:1px solid #2c4357;
  background:transparent;
  color:#85a0b7;
}
.skm-tertiary:hover{color:#dce9f3}
.skm-detail-empty,.skm-empty{
  min-height:140px;
  display:grid;
  place-items:center;
  color:#70899e;
  font-size:11px;
}

@media(max-width:1450px){
  .skm-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .skm-workspace{grid-template-columns:minmax(0,1fr) 320px}
  .skm-action-list{grid-template-columns:1fr}
}
@media(max-width:1120px){
  .skm-workspace{grid-template-columns:1fr}
  .skm-detail{position:relative;top:auto;max-height:none}
  .skm-canvas-wrap{height:500px}
}
@media(max-width:720px){
  .skm-page-head{align-items:flex-start;flex-direction:column}
  .skm-head-actions{width:100%;justify-content:space-between}
  .skm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .skm-search-row{flex-wrap:wrap}
  .skm-search{flex-basis:100%}
  .skm-canvas-head{align-items:flex-start;flex-direction:column}
  .skm-canvas-wrap{height:460px}
  .skm-section-head{align-items:flex-start;flex-direction:column}
  .skm-section-head>small{text-align:left}
  .skm-action-card{grid-template-columns:28px minmax(100px,1fr) 45px}
  .skm-action-reason{grid-column:2/-1}
}
