/* ═══════════════════════════════════════════════════════
   商脉通CRM · 全新 PC 工作台（独立于旧版 styles.css）
   语言：纸感浅底 + 白卡 + 蓝绿宝石品牌渐变 + 等宽数字
   ═══════════════════════════════════════════════════════ */
:root {
  --jewel-a: #2E55D4;
  --jewel-mid: #2C6BBE;
  --jewel-b: #27866E;
  --jewel-grad: linear-gradient(150deg, #2E55D4, #2C6BBE 44%, #27866E);
  --ink: #101828;
  --ink-2: #344054;
  --muted: #667085;
  --faint: #98A2B3;
  --line: #E4E7EC;
  --paper: #F4F6F9;
  --card: #FFFFFF;
  --teal: #0E8A72;
  --teal-deep: #085C4C;
  --blue: #2569B3;
  --violet: #6D4FC4;
  --amber: #C07E12;
  --amber-deep: #8F5D06;
  --red: #C74228;
  --green: #16A34A;
  --rail: #0C1533;
  --shadow-card: 0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.05);
  --shadow-pop: 0 12px 32px -8px rgba(16,24,40,.22);
  --r-lg: 18px;
  --r-md: 12px;
  --r-sm: 9px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
  font-size: 14px;
  line-height: 1.55;
  min-height: 100vh;
}
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
input, select, textarea { font: inherit; color: var(--ink); }
b, strong { font-weight: 650; }
.num { font-variant-numeric: tabular-nums; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(37,105,179,.28); outline-offset: 2px; }

/* ── 布局骨架 ── */
.desk { display: grid; grid-template-columns: 76px 1fr; min-height: 100vh; }
.desk-main { display: flex; flex-direction: column; min-width: 0; }
.desk-content { flex: 1; width: 100%; max-width: 1920px; margin: 0 auto; padding: 22px 28px 48px; }

/* ── 左侧主轨 ── */
.rail {
  position: sticky; top: 0; height: 100vh; z-index: 30;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 16px 0 18px;
  background:
    radial-gradient(120% 30% at 50% 0%, rgba(46,85,212,.35), transparent 60%),
    linear-gradient(178deg, var(--rail) 10%, #0E2547 55%, #0B2E29 100%);
}
.rail-mark {
  width: 42px; height: 42px; border-radius: 13px; margin-bottom: 14px;
  display: grid; place-items: center; position: relative; overflow: hidden;
  background: conic-gradient(from 215deg, #2E55D4, #2C6BBE 30%, #27866E 58%, #1E3FA8 82%, #2E55D4);
  color: #fff; font-weight: 750; font-size: 19px;
  box-shadow: 0 6px 16px rgba(6,16,44,.55), inset 0 1px 0 rgba(255,255,255,.4);
}
.rail-mark::after { content: ""; position: absolute; inset: 0; background: linear-gradient(155deg, rgba(255,255,255,.4) 0 26%, transparent 27%); }
.rail-role { width: 26px; height: 20px; margin: -10px 0 3px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; display: grid; place-items: center; color: rgba(235,243,252,.68); font-size: 10px; font-weight: 700; }
.rail-btn {
  width: 54px; padding: 9px 0 7px; border-radius: 13px;
  display: grid; justify-items: center; gap: 3px;
  color: rgba(214,228,244,.62); transition: color .18s, background .18s;
}
.rail-btn svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.7; }
.rail-btn span { font-size: 10.5px; letter-spacing: .04em; }
.rail-btn:hover { color: #fff; background: rgba(255,255,255,.07); }
.rail-btn.active { color: #fff; background: var(--jewel-grad); box-shadow: 0 8px 18px -6px rgba(44,96,180,.65), inset 0 1px 0 rgba(255,255,255,.28); }
.rail-spacer { flex: 1; }
.rail-foot { display: grid; gap: 6px; justify-items: center; }
.rail-foot a { color: rgba(214,228,244,.45); font-size: 10.5px; text-decoration: none; padding: 6px 8px; border-radius: 8px; }
.rail-foot a:hover { color: #fff; background: rgba(255,255,255,.08); }

/* ── 顶栏 ── */
.topbar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 16px;
  padding: 13px 28px;
  background: rgba(244,246,249,.86);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(16,24,40,.06);
}
.topbar-title { min-width: 0; }
.workspace-name { color: var(--blue); font-size: 10.5px; font-weight: 750; letter-spacing: .08em; }
.topbar-title h1 { font-size: 17px; font-weight: 700; letter-spacing: .01em; }
.topbar-title p { color: var(--muted); font-size: 12px; margin-top: 1px; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 9px; }
.top-btn {
  position: relative; display: flex; align-items: center; gap: 7px;
  min-height: 36px; padding: 0 13px; border-radius: 10px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink-2); font-size: 13px; font-weight: 550;
  transition: box-shadow .15s, transform .12s;
}
.top-btn:hover { box-shadow: inset 0 0 0 1px #cfd6df, 0 4px 10px -4px rgba(16,24,40,.18); }
.top-btn.primary { background: var(--jewel-grad); color: #fff; box-shadow: 0 6px 14px -6px rgba(44,96,180,.6), inset 0 1px 0 rgba(255,255,255,.3); }
.top-btn .badge {
  position: absolute; top: -5px; right: -5px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px; background: var(--red); color: #fff;
  display: grid; place-items: center; font-size: 10.5px; font-weight: 700;
}
.top-user { display: flex; align-items: center; gap: 8px; padding-left: 9px; border-left: 1px solid var(--line); }
.top-avatar {
  width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  background: var(--jewel-grad); color: #fff; font-size: 13px; font-weight: 700;
}
.top-user small { display: block; color: var(--muted); font-size: 11px; line-height: 1.2; }
.top-user b { font-size: 12.5px; line-height: 1.25; }

/* ── 通用卡片 / 区块 ── */
.card { background: var(--card); border-radius: var(--r-lg); box-shadow: var(--shadow-card); border: 1px solid rgba(16,24,40,.05); }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px 0; }
.card-head h2 { font-size: 14.5px; font-weight: 700; }
.card-head .hint { color: var(--faint); font-size: 12px; margin-top: 1px; }
.card-body { padding: 14px 18px 16px; }
.eyebrow { display: block; color: var(--faint); font-size: 11px; font-weight: 650; letter-spacing: .1em; margin-bottom: 2px; }
.chip { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 9px; border-radius: 999px; font-size: 11.5px; font-weight: 650; background: #EEF1F5; color: var(--ink-2); }
.chip.red { background: rgba(199,66,40,.1); color: var(--red); }
.chip.amber { background: rgba(192,126,18,.12); color: var(--amber-deep); }
.chip.green { background: rgba(22,163,74,.1); color: #15803D; }
.chip.blue { background: rgba(37,105,179,.1); color: var(--blue); }
.chip.violet { background: rgba(109,79,196,.1); color: var(--violet); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 34px; padding: 0 14px; border-radius: 10px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink-2); font-size: 13px; font-weight: 570;
  transition: transform .1s, box-shadow .15s, filter .15s;
}
.btn[href] { text-decoration: none; }
.btn:hover { box-shadow: inset 0 0 0 1px #cbd3dd, 0 4px 10px -5px rgba(16,24,40,.2); }
.btn:active { transform: scale(.98); }
.btn:disabled { opacity: .55; cursor: default; }
.btn.primary { background: var(--jewel-grad); color: #fff; box-shadow: 0 8px 16px -7px rgba(44,96,180,.6), inset 0 1px 0 rgba(255,255,255,.3); }
.btn.primary:hover { filter: brightness(1.05); }
.btn.danger { color: var(--red); }
.btn.compact { min-height: 29px; padding: 0 11px; font-size: 12.5px; border-radius: 8px; }
.field { display: grid; gap: 6px; }
.field > span { color: var(--muted); font-size: 12px; font-weight: 600; }
.field input, .field select, .field textarea {
  min-height: 38px; padding: 7px 12px; border: 1px solid var(--line); border-radius: 10px;
  background: #fff; font-size: 13.5px; transition: border-color .15s, box-shadow .15s;
}
.field textarea { resize: vertical; min-height: 64px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--jewel-mid); box-shadow: 0 0 0 3.5px rgba(44,107,190,.16); }
.empty { padding: 34px 16px; text-align: center; color: var(--faint); font-size: 13px; }
.empty b { display: block; color: var(--muted); font-size: 14px; margin-bottom: 3px; }
.skeleton { border-radius: var(--r-lg); background: linear-gradient(100deg, #eef1f5 40%, #f7f9fb 50%, #eef1f5 60%); background-size: 200% 100%; animation: desk-shimmer 1.2s infinite linear; }
@keyframes desk-shimmer { to { background-position: -200% 0; } }
.notice-error { padding: 14px 18px; border-radius: var(--r-md); background: rgba(199,66,40,.07); color: var(--red); font-size: 13px; }

/* ── 数据表 ── */
.tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.tbl th { text-align: left; padding: 9px 12px; color: var(--faint); font-size: 11.5px; font-weight: 650; letter-spacing: .05em; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 11px 12px; border-bottom: 1px solid #F0F2F5; vertical-align: middle; }
.tbl tbody tr { transition: background .12s; }
.tbl tbody tr:hover { background: #F8FAFC; }
.tbl tbody tr.rowlink { cursor: pointer; }
.tbl .num { text-align: right; }
.tbl-scroll { overflow-x: auto; }

/* ── 抽屉 ── */
.drawer-backdrop { position: fixed; inset: 0; z-index: 60; background: rgba(12,21,51,.4); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); animation: desk-fade .18s; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 61; width: min(520px, 94vw);
  background: #fff; box-shadow: -18px 0 48px rgba(12,21,51,.25);
  display: flex; flex-direction: column;
  animation: desk-slide .22s cubic-bezier(.32,.72,.35,1);
}
.drawer.wide { width: min(680px, 96vw); }
@keyframes desk-slide { from { transform: translateX(40px); opacity: 0; } }
@keyframes desk-fade { from { opacity: 0; } }
.drawer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 22px 12px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { font-size: 16px; font-weight: 700; }
.drawer-body { flex: 1; overflow-y: auto; padding: 16px 22px 28px; }
.drawer-section { margin-bottom: 20px; }
.drawer-section > h3 { font-size: 13px; font-weight: 700; color: var(--ink-2); margin-bottom: 9px; display: flex; align-items: center; justify-content: space-between; }
.kv { display: grid; grid-template-columns: 84px 1fr; gap: 6px 12px; font-size: 13px; }
.kv span { color: var(--faint); }
.kv b { font-weight: 570; color: var(--ink-2); word-break: break-all; }

/* ── 弹窗 ── */
.modal-backdrop { position: fixed; inset: 0; z-index: 70; background: rgba(12,21,51,.44); display: grid; place-items: center; animation: desk-fade .16s; padding: 24px; }
.modal { width: min(520px, 94vw); max-height: 90vh; overflow-y: auto; background: #fff; border-radius: 20px; box-shadow: var(--shadow-pop); padding: 22px 24px; animation: desk-pop .2s cubic-bezier(.34,1.3,.6,1); }
@keyframes desk-pop { from { transform: scale(.96) translateY(8px); opacity: 0; } }
.modal h2 { font-size: 16px; margin-bottom: 4px; }
.modal .sub { color: var(--muted); font-size: 12.5px; margin-bottom: 14px; }
.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }

/* ── Toast ── */
.toast {
  position: fixed; left: 50%; bottom: 34px; z-index: 90; transform: translate(-50%, 16px);
  max-width: 60vw; padding: 11px 20px; border-radius: 12px;
  background: rgba(16,24,40,.92); color: #fff; font-size: 13.5px;
  opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.error { background: rgba(180,52,32,.95); }

/* ── 登录 ── */
.desk-login { min-height: 100vh; display: grid; place-items: center; background:
  radial-gradient(110% 72% at 88% -6%, rgba(46,85,212,.5), transparent 55%),
  radial-gradient(120% 80% at -12% 104%, rgba(39,134,110,.45), transparent 58%),
  linear-gradient(158deg, #0C1533 8%, #0E2547 46%, #0B2E29 92%); }
.desk-login-card { width: min(400px, 92vw); background: linear-gradient(172deg, rgba(255,255,255,.96), rgba(248,251,253,.9)); border-radius: 22px; padding: 30px 28px; box-shadow: 0 30px 60px -20px rgba(6,16,44,.6), inset 0 1px 0 rgba(255,255,255,.9); }
.desk-login-card h1 { font-size: 20px; margin: 14px 0 2px; }
.desk-login-card > p { color: var(--muted); font-size: 13px; margin-bottom: 20px; }
.desk-login-card form { display: grid; gap: 14px; }
.desk-login-error { color: var(--red); font-size: 12.5px; min-height: 16px; }

/* ═══ 今日 · 决策流 ═══ */
.today-grid { display: grid; grid-template-columns: 1fr 340px; gap: 16px; align-items: start; }
@media (max-width: 1180px) { .today-grid { grid-template-columns: 1fr; } }
.today-hero { display: grid; grid-template-columns: auto 1fr; gap: 34px; align-items: center; padding: 32px 40px; border-radius: var(--r-lg); color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(120% 100% at 88% -10%, rgba(255,255,255,.18), transparent 52%), var(--jewel-grad);
  box-shadow: 0 18px 40px -14px rgba(37,82,180,.55), inset 0 1px 0 rgba(255,255,255,.25); margin-bottom: 18px; }
.today-ring { width: 132px; height: 132px; position: relative; flex: none; }
.today-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.today-ring-label { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; }
.today-ring-label b { display: block; font-size: 30px; font-weight: 780; letter-spacing: -.02em; }
.today-ring-label span { font-size: 12.5px; opacity: .82; margin-top: 2px; }
.today-hero-meta > span { font-size: 14px; opacity: .82; }
.today-hero-meta h2 { font-size: 28px; font-weight: 750; margin: 8px 0 20px; letter-spacing: -.01em; }
.today-pulse { display: flex; gap: 52px; flex-wrap: wrap; }
.today-pulse div span { display: block; font-size: 14px; opacity: .82; margin-bottom: 6px; }
.today-pulse div b { font-size: 42px; font-weight: 780; line-height: 1; letter-spacing: -.02em; }
.today-pulse div small { font-size: 14px; opacity: .8; margin-left: 7px; font-weight: 500; }
.feed-row { display: flex; align-items: center; gap: 13px; padding: 12px 6px; border-bottom: 1px solid #F0F2F5; }
.feed-row:last-child { border-bottom: 0; }
.feed-ico { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-size: 15px; }
.feed-ico.red { background: rgba(199,66,40,.1); }
.feed-ico.amber { background: rgba(192,126,18,.12); }
.feed-ico.blue { background: rgba(37,105,179,.1); }
.feed-ico.teal { background: rgba(14,138,114,.1); }
.feed-ico.violet { background: rgba(109,79,196,.1); }
.feed-main { flex: 1; min-width: 0; }
.feed-main b { font-size: 13.5px; }
.feed-main small { display: block; color: var(--faint); font-size: 12px; margin-top: 1px; }
.feed-num { font-size: 17px; font-weight: 750; color: var(--ink-2); }
.team-snap-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid #F0F2F5; }
.team-snap-row:last-child { border-bottom: 0; }
.team-avatar { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--jewel-grad); color: #fff; font-size: 12.5px; font-weight: 700; }
.team-avatar.idle { background: #E4E7EC; color: var(--faint); }
.team-snap-row .who { flex: 1; min-width: 0; }
.team-snap-row .who b { font-size: 13px; }
.team-snap-row .who small { display: block; color: var(--faint); font-size: 11.5px; }
.trend-bars { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; align-items: end; height: 96px; padding-top: 6px; }
.trend-bar { display: grid; align-content: end; justify-items: center; gap: 4px; height: 100%; }
.trend-bar i { width: 62%; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #2C6BBE, #27866E); min-height: 3px; }
.trend-bar.mute i { background: #DCE1E8; }
.trend-bar span { color: var(--faint); font-size: 10.5px; }
.trend-bar b { font-size: 11px; color: var(--ink-2); }

/* ═══ 通用列表页（客户/交易/履约/团队）═══ */
.page-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.page-tools .grow { flex: 1; }
.seg { display: inline-flex; padding: 3px; border-radius: 11px; background: #EAEDF2; gap: 2px; }
.seg button { min-height: 30px; padding: 0 13px; border-radius: 9px; font-size: 12.5px; font-weight: 600; color: var(--muted); transition: all .15s; }
.seg button.active { background: #fff; color: var(--ink); box-shadow: 0 1px 3px rgba(16,24,40,.12); }
.search-box { display: flex; align-items: center; gap: 7px; min-width: 240px; padding: 0 12px; min-height: 36px; background: #fff; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); }
.search-box input { border: 0; outline: none; flex: 1; font-size: 13px; background: none; }
.stat-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.stat-cell { padding: 13px 16px; border-radius: var(--r-md); background: #fff; box-shadow: var(--shadow-card); border: 1px solid rgba(16,24,40,.05); }
.stat-cell span { display: block; color: var(--muted); font-size: 11.5px; }
.stat-cell b { display: block; font-size: 20px; font-weight: 750; margin-top: 2px; }
.stat-cell small { color: var(--faint); font-size: 11px; }
.stat-cell.amber b { color: var(--amber-deep); }
.stat-cell.red b { color: var(--red); }
.stat-cell.teal b { color: var(--teal); }
.stat-cell.blue b { color: var(--blue); }
.pager { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 12px 6px 0; color: var(--muted); font-size: 12.5px; }

/* ═══ 履约 ═══ */
.fulfil-board { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin-bottom: 16px; }
.fulfil-day { padding: 12px 13px; border-radius: var(--r-md); background: #fff; border: 1px solid rgba(16,24,40,.05); box-shadow: var(--shadow-card); }
.fulfil-day.is-full { background: rgba(199,66,40,.05); border-color: rgba(199,66,40,.18); }
.fulfil-day span { display: flex; justify-content: space-between; color: var(--muted); font-size: 11.5px; }
.fulfil-day b { display: block; font-size: 19px; font-weight: 750; margin: 3px 0 1px; }
.fulfil-day.is-full b { color: var(--red); }
.fulfil-day small { color: var(--faint); font-size: 10.5px; }
.slot-meter { height: 4px; border-radius: 99px; background: #EAEDF2; margin-top: 7px; overflow: hidden; }
.slot-meter i { display: block; height: 100%; border-radius: 99px; background: var(--jewel-grad); }
.fulfil-day.is-full .slot-meter i { background: var(--red); }

/* ═══ 审批中心抽屉 ═══ */
.appr-row { padding: 13px 0; border-bottom: 1px solid #F0F2F5; }
.appr-row:last-child { border-bottom: 0; }
.appr-row-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.appr-row-top b { font-size: 13.5px; }
.appr-row p { color: var(--muted); font-size: 12.5px; margin: 2px 0 8px; }
.appr-actions { display: flex; gap: 8px; }

/* 引导页 */
.desk-guard { min-height: 70vh; display: grid; place-items: center; text-align: center; }
.desk-guard .mark { width: 56px; height: 56px; border-radius: 17px; margin: 0 auto 16px; display: grid; place-items: center; background: var(--jewel-grad); color: #fff; font-size: 24px; font-weight: 750; }
.desk-guard h2 { font-size: 18px; margin-bottom: 6px; }
.desk-guard p { color: var(--muted); margin-bottom: 18px; }
.desk-guard .row { display: flex; gap: 10px; justify-content: center; }

@media (max-width: 900px) {
  .desk { grid-template-columns: 1fr; }
  .rail { position: fixed; bottom: 0; top: auto; height: auto; width: 100%; flex-direction: row; justify-content: center; padding: 8px; }
  .rail-mark, .rail-spacer, .rail-foot { display: none; }
  .desk-content { padding: 16px 14px 90px; }
  .fulfil-board { grid-template-columns: repeat(4, 1fr); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* 经营域：漏斗 + 走势客流点 */
.trend-bar { position: relative; }
.trend-bar u { position: absolute; left: 50%; transform: translateX(-50%); width: 7px; height: 7px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 2.5px rgba(37,105,179,.18); }
.funnel-row { display: grid; grid-template-columns: 76px 1fr 56px 44px; align-items: center; gap: 10px; padding: 7px 0; }
.funnel-row > span { color: var(--muted); font-size: 12.5px; }
.funnel-row b { text-align: right; font-size: 13.5px; }
.funnel-row small { color: var(--faint); font-size: 11.5px; text-align: right; }
.funnel-track { height: 16px; border-radius: 6px; background: #F0F2F5; overflow: hidden; }
.funnel-track i { display: block; height: 100%; border-radius: 6px; background: var(--jewel-grad); opacity: .88; }

/* ══ 接待现场 ══ */
.live-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.live-card { padding: 13px 15px; border-radius: var(--r-md); background: rgba(14,138,114,.05); box-shadow: inset 0 0 0 1px rgba(14,138,114,.16); }
.live-card.overtime { background: rgba(199,66,40,.05); box-shadow: inset 0 0 0 1px rgba(199,66,40,.2); }
.live-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 3px; }
.live-card-top b { font-size: 14px; }
.live-card p { color: var(--ink-2); font-size: 12.5px; margin-bottom: 8px; }
.live-stages { display: flex; gap: 4px; margin-bottom: 7px; flex-wrap: wrap; }
.live-card small { color: var(--faint); font-size: 11px; }

/* ══ 数据大屏（暗色电视墙）══ */
.bigscreen {
  min-height: 100vh; padding: 26px 34px 34px; color: #EAF1F8;
  background:
    radial-gradient(110% 72% at 88% -6%, rgba(46,85,212,.4), transparent 55%),
    radial-gradient(120% 80% at -12% 104%, rgba(39,134,110,.35), transparent 58%),
    linear-gradient(158deg, #0A1128 8%, #0D2140 46%, #0A2823 92%);
}
.bs-loading { min-height: 80vh; display: grid; place-items: center; color: rgba(214,228,244,.6); font-size: 16px; }
.bs-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.bs-brand { display: flex; align-items: center; gap: 12px; }
.bs-brand b { font-size: 19px; letter-spacing: .02em; }
.bs-brand small { display: block; color: rgba(214,228,244,.55); font-size: 12px; margin-top: 1px; }
.bs-head-right { display: flex; align-items: center; gap: 14px; }
.bs-date { color: rgba(214,228,244,.6); font-size: 14px; }
.bs-clock { font-size: 24px; font-weight: 750; letter-spacing: .04em; }
.bs-switch { display: flex; padding: 3px; border-radius: 11px; background: rgba(255,255,255,.08); gap: 2px; }
.bs-switch button { min-height: 32px; padding: 0 15px; border-radius: 9px; color: rgba(214,228,244,.65); font-size: 13px; font-weight: 600; }
.bs-switch button.active { background: var(--jewel-grad); color: #fff; box-shadow: 0 5px 12px -5px rgba(44,96,180,.6); }
.bs-exit { min-height: 32px; padding: 0 13px; border-radius: 9px; background: rgba(255,255,255,.08); color: rgba(214,228,244,.7); font-size: 13px; }
.bs-exit:hover { background: rgba(255,255,255,.16); color: #fff; }
.bs-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-bottom: 18px; }
.bs-kpi { padding: 18px 22px; border-radius: 18px; background: rgba(255,255,255,.055); box-shadow: inset 0 1px 0 rgba(255,255,255,.09), inset 0 0 0 1px rgba(255,255,255,.05); }
.bs-kpi span { color: rgba(214,228,244,.62); font-size: 13.5px; }
.bs-kpi b { display: block; font-size: 40px; font-weight: 750; margin: 4px 0 3px; letter-spacing: .01em; }
.bs-kpi small { color: rgba(214,228,244,.55); font-size: 12px; }
.bs-kpi.blue b { color: #7EA4FF; } .bs-kpi.violet b { color: #B9A0FF; } .bs-kpi.teal b { color: #5BE3BC; }
.bs-kpi.amber b { color: #FFC96B; } .bs-kpi.red b { color: #FF8A70; } .bs-kpi.green b { color: #7BE0A2; }
.bs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.bs-grid-all { grid-template-columns: repeat(4, 1fr); }
.bs-span2 { grid-column: span 2; }
.bs-card { padding: 18px 20px; border-radius: 18px; background: rgba(255,255,255,.055); box-shadow: inset 0 1px 0 rgba(255,255,255,.09), inset 0 0 0 1px rgba(255,255,255,.05); }
.bs-card h3 { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: rgba(234,241,248,.92); margin-bottom: 12px; }
.bs-card h3 small { color: rgba(214,228,244,.5); font-size: 12px; font-weight: 500; }
.bs-empty { padding: 22px 0; color: rgba(214,228,244,.45); font-size: 13px; }
.bs-live { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.bs-live-card { padding: 12px 14px; border-radius: 13px; background: rgba(91,227,188,.08); box-shadow: inset 0 0 0 1px rgba(91,227,188,.18); }
.bs-live-card.hot { background: rgba(255,138,112,.1); box-shadow: inset 0 0 0 1px rgba(255,138,112,.25); }
.bs-live-card b { font-size: 14.5px; }
.bs-live-card p { color: rgba(214,228,244,.66); font-size: 12px; margin: 2px 0 5px; }
.bs-live-card span { font-size: 15px; font-weight: 700; color: #5BE3BC; }
.bs-live-card.hot span { color: #FF8A70; }
.bs-live-dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(214,228,244,.3); }
.bs-live-dot.on { background: #5BE3BC; box-shadow: 0 0 10px rgba(91,227,188,.8); animation: bs-pulse 1.6s infinite; }
@keyframes bs-pulse { 50% { opacity: .55; } }
.bs-target-bar { height: 12px; border-radius: 99px; background: rgba(255,255,255,.1); overflow: hidden; }
.bs-target-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #7EA4FF, #5BE3BC); }
.bs-target-meta { display: flex; align-items: baseline; gap: 12px; margin-top: 9px; }
.bs-target-meta b { font-size: 26px; font-weight: 750; color: #5BE3BC; }
.bs-target-meta span { color: rgba(214,228,244,.6); font-size: 12.5px; }
.bs-team { display: grid; gap: 9px; }
.bs-team-row { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 10px; }
.bs-team-row span { font-size: 13px; color: rgba(234,241,248,.85); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bs-team-row.idle span { color: #FF8A70; }
.bs-team-bar { height: 9px; border-radius: 99px; background: rgba(255,255,255,.09); overflow: hidden; }
.bs-team-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #2C6BBE, #27866E); }
.bs-team-row b { font-size: 11.5px; color: rgba(214,228,244,.6); font-weight: 550; white-space: nowrap; }
.bs-trend { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; align-items: end; height: 92px; }
.bs-trend-big { height: 150px; }
.bs-trend-bar { display: grid; align-content: end; justify-items: center; gap: 4px; height: 100%; }
.bs-trend-bar i { width: 60%; min-height: 3px; border-radius: 4px 4px 2px 2px; background: linear-gradient(180deg, #7EA4FF, #27866E); }
.bs-trend-bar span { color: rgba(214,228,244,.45); font-size: 10.5px; }
.bs-mini-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px; }
.bs-mini-kpis.bs-mini-2col { grid-template-columns: 1fr 1fr; margin-top: 0; }
.bs-mini-kpis div { padding: 10px 13px; border-radius: 12px; background: rgba(255,255,255,.05); }
.bs-mini-kpis span { display: block; color: rgba(214,228,244,.55); font-size: 11.5px; }
.bs-mini-kpis b { font-size: 17px; font-weight: 700; margin-right: 6px; }
.bs-mini-kpis em { font-style: normal; font-size: 11.5px; font-weight: 700; }
.bs-mini-kpis em.up { color: #7BE0A2; } .bs-mini-kpis em.down { color: #FF8A70; }
.bs-center { text-align: center; }
.bs-ring { position: relative; display: inline-block; margin-bottom: 10px; }
.bs-ring-label { position: absolute; inset: 0; display: grid; place-items: center; }
.bs-ring-label b { display: block; font-size: 26px; font-weight: 750; color: #5BE3BC; }
.bs-ring-label span { color: rgba(214,228,244,.55); font-size: 11px; }
.bs-kv { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.06); font-size: 13px; }
.bs-kv:last-child { border-bottom: 0; }
.bs-kv span { color: rgba(214,228,244,.55); }
.bs-kv b { font-weight: 700; }
.bs-funnel-row { display: grid; grid-template-columns: 66px 1fr 48px 40px; align-items: center; gap: 9px; padding: 6px 0; }
.bs-funnel-row > span { color: rgba(214,228,244,.6); font-size: 12px; }
.bs-funnel-row b { text-align: right; font-size: 14px; }
.bs-funnel-row small { color: rgba(214,228,244,.45); font-size: 11px; text-align: right; }
.bs-funnel-track { height: 14px; border-radius: 6px; background: rgba(255,255,255,.08); overflow: hidden; }
.bs-funnel-track i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #7EA4FF, #5BE3BC); }
.bs-rank-row { display: grid; grid-template-columns: 26px 1fr auto; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.bs-rank-row:last-child { border-bottom: 0; }
.bs-rank-row i { width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; font-style: normal; font-size: 12.5px; font-weight: 750; background: rgba(255,255,255,.08); color: rgba(214,228,244,.6); }
.bs-rank-row i.top { background: var(--jewel-grad); color: #fff; }
.bs-rank-row span { font-size: 13.5px; }
.bs-rank-row b { font-size: 15px; color: #5BE3BC; }
@media (max-width: 1200px) { .bs-kpis { grid-template-columns: repeat(2, 1fr); } .bs-grid, .bs-grid-all { grid-template-columns: 1fr 1fr; } }

/* ═══════════ 接待现场 · A3 前场调度台（rc- 前缀，独立于其他域） ═══════════ */
:root {
  --rc-deep-a: #0C1A30; --rc-deep-b: #0D3330;
  --rc-amberlite: #F5B357; --rc-mint: #63E2B7;
  --rc-hairline: rgba(23,25,29,.07);
}
.rc-rise { opacity: 0; transform: translateY(16px); animation: rcRise .6s cubic-bezier(.2,.85,.3,1) forwards; }
@keyframes rcRise { to { opacity: 1; transform: none; } }
.rc-d2 { animation-delay: .12s } .rc-d3 { animation-delay: .22s } .rc-d4 { animation-delay: .32s } .rc-d5 { animation-delay: .42s }

/* 页首调度台面板（蓝绿宝石渐变, 与今日 hero 同族） */
.rc-helm {
  position: relative; border-radius: 24px; overflow: hidden; margin-bottom: 18px;
  background:
    radial-gradient(120% 100% at 88% -10%, rgba(255,255,255,.18), transparent 52%),
    radial-gradient(110% 150% at -8% 130%, rgba(255,255,255,.1), transparent 50%),
    var(--jewel-grad);
  box-shadow: 0 14px 30px -12px rgba(37,82,180,.55), inset 0 1px 0 rgba(255,255,255,.25);
  color: #fff;
}
.rc-helm::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(116deg, rgba(255,255,255,.05) 0 1px, transparent 1px 72px);
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent 80%); mask-image: linear-gradient(to bottom, #000, transparent 80%); }
.rc-helm-top { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 28px 4px; }
.rc-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.85); font-size: 10.5px; font-weight: 700; letter-spacing: .3em; }
.rc-eyebrow::before { content: ""; width: 20px; height: 2px; border-radius: 2px; background: var(--rc-mint); opacity: .9; }
.rc-helm h1 { font-size: 22px; font-weight: 750; letter-spacing: .01em; margin-top: 8px; color: #fff; text-wrap: balance; }
.rc-helm h1 em { font-style: normal; color: #FFE9C4; }
.rc-helm-right { text-align: right; flex: none; }
.rc-helm-right small { display: block; color: rgba(255,255,255,.75); font-size: 12px; letter-spacing: .04em; }
.rc-helm-right b { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 28px; font-weight: 600; letter-spacing: .06em; color: #fff; }

/* 计分牌 */
.rc-board { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr) 1.35fr; padding: 12px 8px 18px; }
.rc-bcell { position: relative; padding: 12px 22px 4px; }
.rc-bcell + .rc-bcell::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 12px; width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,.28), transparent); }
.rc-bcell > span { display: block; color: rgba(255,255,255,.78); font-size: 12px; letter-spacing: .14em; margin-bottom: 6px; }
.rc-bnum { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 40px; font-weight: 650; line-height: 1.05; letter-spacing: .02em;
  color: #fff; text-shadow: 0 1px 2px rgba(12,26,48,.25); }
.rc-bnum i { font-style: normal; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.72); letter-spacing: 0; margin-left: 3px; text-shadow: none; }
.rc-bcell.mint .rc-bnum { color: #A8F5DC; text-shadow: 0 0 16px rgba(99,226,183,.4), 0 1px 2px rgba(12,26,48,.25); }
.rc-bcell.mint .rc-bnum i { color: rgba(168,245,220,.75); }
.rc-bcell small { display: block; color: rgba(255,255,255,.68); font-size: 11.5px; margin-top: 6px; letter-spacing: .02em; }
.rc-delta { display: inline-block; margin-left: 9px; font-size: 13px; font-weight: 750; color: #C9F7E4; vertical-align: 8px; }
.rc-delta.down { color: #FFD2C4; }

/* 主体布局与卡片 */
.rc-layout { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }
.rc-stage { display: grid; gap: 16px; min-width: 0; }
.rc-side { display: grid; gap: 16px; min-width: 0; }
.rc-card { border-radius: 20px; background: var(--card); box-shadow: 0 1px 2px rgba(16,24,40,.05), 0 12px 32px -18px rgba(16,24,40,.14); padding: 19px 22px; position: relative; }
.rc-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.rc-card-head h2 { font-size: 15px; font-weight: 800; letter-spacing: .01em; display: flex; align-items: center; gap: 9px; }
.rc-card-head h2::before { content: ""; width: 4px; height: 15px; border-radius: 3px; background: var(--jewel-grad); }
.rc-card-head h2 i { font-style: normal; color: var(--faint); font-size: 11.5px; font-weight: 500; }
.rc-card-head small { color: var(--faint); font-size: 11.5px; }
.rc-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 0 rgba(14,138,114,.4); animation: rcPulse 1.8s infinite; }
@keyframes rcPulse { 70% { box-shadow: 0 0 0 8px rgba(14,138,114,0); } }

/* 正在接待 */
.rc-live-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 13px; }
.rc-live-card { position: relative; border-radius: 16px; padding: 14px 17px 12px 20px; background: linear-gradient(170deg, #FDFEFE, #F6FAF9);
  box-shadow: inset 0 0 0 1px rgba(14,138,114,.14), 0 10px 24px -16px rgba(14,138,114,.4); overflow: hidden; transition: transform .22s, box-shadow .22s; }
.rc-live-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, #12A385, #0E8A72); }
.rc-live-card:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px rgba(14,138,114,.22), 0 18px 32px -16px rgba(14,138,114,.45); }
.rc-live-card.hot { background: linear-gradient(170deg, #FFFDFC, #FBF5F2); box-shadow: inset 0 0 0 1px rgba(199,66,40,.18), 0 10px 24px -16px rgba(199,66,40,.42); }
.rc-live-card.hot::before { background: linear-gradient(180deg, #E0714B, #C2452A); animation: rcHotspine 2.2s infinite; }
@keyframes rcHotspine { 50% { opacity: .55; } }
.rc-live-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rc-live-top b { font-size: 15px; font-weight: 750; }
.rc-live-top b small { color: var(--muted); font-weight: 500; font-size: 12px; margin-left: 7px; }
.rc-watch { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 27px; font-weight: 650; color: var(--teal); letter-spacing: .01em; }
.rc-live-card.hot .rc-watch { color: var(--red); }
.rc-stages { display: flex; align-items: center; margin: 11px 2px 4px; }
.rc-stg { display: grid; justify-items: center; gap: 5px; }
.rc-stg i { width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px #D3D8DE; transition: all .3s; }
.rc-stg.done i { background: radial-gradient(circle at 35% 30%, #34C39F, var(--teal)); box-shadow: 0 0 0 3px rgba(14,138,114,.14), inset 0 1px 1px rgba(255,255,255,.5); }
.rc-stg em { font-style: normal; font-size: 10.5px; color: var(--faint); }
.rc-stg.done em { color: var(--teal); font-weight: 700; }
.rc-stgline { flex: 1; height: 2px; background: #E8EBEE; margin: 0 5px 17px; border-radius: 2px; }
.rc-stgline.done { background: linear-gradient(90deg, #34C39F, var(--teal)); }
.rc-live-foot { color: var(--faint); font-size: 11.5px; margin-top: 6px; }
.rc-live-foot u { text-decoration: none; color: var(--red); font-weight: 700; }

/* 时间轴泳道 */
.rc-lanes { position: relative; margin-top: 24px; }
.rc-lane-scale { display: grid; grid-template-columns: 150px 1fr; margin-bottom: 8px; }
.rc-ticks { display: flex; justify-content: space-between; color: var(--faint); font-size: 10px; font-weight: 600; letter-spacing: .05em; }
.rc-ticks span { transform: translateX(-50%); }
.rc-lane-body { position: relative; border-radius: 14px; }
.rc-lane { display: grid; grid-template-columns: 150px 1fr; align-items: center; min-height: 52px; }
.rc-lane + .rc-lane { border-top: 1px solid var(--rc-hairline); }
.rc-lane-name { display: flex; align-items: center; gap: 10px; padding-right: 12px; min-width: 0; }
.rc-lane-name i { width: 30px; height: 30px; border-radius: 11px; flex: none; display: grid; place-items: center; background: var(--jewel-grad); color: #fff; font-style: normal; font-size: 12.5px; font-weight: 700;
  box-shadow: 0 4px 10px -4px rgba(44,96,180,.5), inset 0 1px 0 rgba(255,255,255,.3); }
.rc-lane-name.idle i { background: #E4E7EC; color: var(--faint); box-shadow: none; }
.rc-lane-name b { font-size: 13.5px; font-weight: 750; white-space: nowrap; }
.rc-lane-name small { display: block; color: var(--faint); font-size: 10.5px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-lane-track { position: relative; height: 52px; }
.rc-lane-track::before { content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0 calc(100%/12 - 1px), rgba(23,25,29,.05) calc(100%/12 - 1px) calc(100%/12)); }
.rc-peak-band { position: absolute; top: -28px; bottom: 0; background: linear-gradient(180deg, rgba(245,179,87,.1), rgba(245,179,87,.03));
  border-left: 1px dashed rgba(168,101,10,.25); border-right: 1px dashed rgba(168,101,10,.25); border-radius: 10px 10px 0 0; pointer-events: none; z-index: 2; }
.rc-peak-band em { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); font-style: normal; color: var(--amber); font-size: 10px; font-weight: 750; letter-spacing: .12em; white-space: nowrap; }
.rc-nowline { position: absolute; top: -28px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--red), rgba(199,66,40,.35)); z-index: 3; pointer-events: none; }
.rc-nowline b { position: absolute; top: 0; left: 50%; transform: translate(-50%, -110%); white-space: nowrap; color: #fff; font-size: 10.5px; font-weight: 750; letter-spacing: .04em;
  background: linear-gradient(160deg, #D65B39, var(--red)); padding: 3px 10px; border-radius: 999px; box-shadow: 0 6px 14px -6px rgba(199,66,40,.6); }
.rc-blk { position: absolute; top: 12px; height: 29px; border-radius: 10px; display: flex; align-items: center; padding: 0 9px; font-size: 11.5px; font-weight: 750; color: #fff; white-space: nowrap; overflow: hidden;
  transform-origin: left center; animation: rcGrow .75s cubic-bezier(.2,.85,.3,1) backwards; transition: transform .18s, box-shadow .18s, filter .18s; cursor: default;
  box-shadow: 0 5px 12px -5px rgba(23,25,29,.35), inset 0 1px 0 rgba(255,255,255,.28); }
.rc-blk:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 10px 20px -8px rgba(23,25,29,.4), inset 0 1px 0 rgba(255,255,255,.3); z-index: 4; }
@keyframes rcGrow { from { transform: scaleX(0); opacity: 0; } }
.rc-blk.valid { background: linear-gradient(180deg, #6D97F2, #4A79E2); }
.rc-blk.invalid { background: linear-gradient(180deg, #D6D9DE, #C3C7CE); color: #565D66; box-shadow: 0 3px 8px -4px rgba(23,25,29,.18); }
.rc-blk.deal { background: var(--jewel-grad); }
.rc-blk.deal::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  transform: translateX(-130%); animation: rcShine 3.8s 1.7s ease-in-out 2; }
@keyframes rcShine { 42%, 100% { transform: translateX(130%); } }
.rc-blk.liveblk { background: linear-gradient(180deg, #17B392, #0E8A72); }
.rc-blk.overtime { background: linear-gradient(180deg, #E0714B, #C2452A); }
.rc-blk em { width: 7px; height: 7px; border-radius: 50%; background: #fff; margin-left: 8px; flex: none; animation: rcPulse 1.6s infinite; }
.rc-legend { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rc-hairline); color: var(--muted); font-size: 11.5px; }
.rc-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 4px; margin-right: 6px; vertical-align: -1.5px; box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }

/* 表格（个人小结 + 客户流水共用） */
.rc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rc-table th { text-align: left; padding: 8px 12px; color: var(--faint); font-size: 10.5px; font-weight: 700; letter-spacing: .1em; border-bottom: 1px solid var(--rc-hairline); white-space: nowrap; }
.rc-table td { padding: 11px 12px; border-bottom: 1px solid rgba(23,25,29,.045); vertical-align: middle; }
.rc-table tr:last-child td { border-bottom: 0; }
.rc-table tbody tr { transition: background .15s; }
.rc-table tbody tr:hover { background: #F8FAFC; }
.rc-table .num-r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rc-table th.num-r { text-align: right; }
.rc-who { display: flex; align-items: center; gap: 10px; }
.rc-who i { width: 28px; height: 28px; border-radius: 10px; flex: none; display: grid; place-items: center; background: var(--jewel-grad); color: #fff; font-style: normal; font-size: 12px; font-weight: 700;
  box-shadow: 0 4px 10px -4px rgba(44,96,180,.45), inset 0 1px 0 rgba(255,255,255,.3); }
.rc-who.idle i { background: #E4E7EC; color: var(--faint); box-shadow: none; }
.rc-who b { font-weight: 750; white-space: nowrap; }
.rc-minirail { width: 64px; height: 6px; border-radius: 99px; background: #EFF2F5; overflow: hidden; display: inline-block; vertical-align: middle; margin-right: 9px; }
.rc-minirail i { display: block; height: 100%; border-radius: 99px; background: var(--jewel-grad); animation: rcRailgrow 1s .7s cubic-bezier(.2,.85,.3,1) backwards; }
@keyframes rcRailgrow { from { width: 0 !important; } }
.rc-chip { display: inline-flex; align-items: center; gap: 5px; height: 23px; padding: 0 10px; border-radius: 999px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.rc-chip::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.rc-chip.live { color: #0A6B57; background: rgba(14,138,114,.1); }
.rc-chip.hot { color: var(--red); background: rgba(199,66,40,.1); }
.rc-chip.idle { color: var(--amber); background: rgba(245,179,87,.16); }
.rc-chip.ok { color: var(--blue); background: rgba(62,111,217,.09); }
.rc-chip.deal { color: #fff; background: var(--jewel-grad); }
.rc-chip.deal::before { background: #fff; }
.rc-chip.mute { color: var(--muted); background: #EFF2F5; }
.rc-dealamt { color: var(--teal); font-weight: 800; }

/* 流水筛选与行 */
.rc-seg { display: inline-flex; padding: 3px; border-radius: 11px; background: #EFF2F5; gap: 2px; }
.rc-seg button { min-height: 27px; padding: 0 11px; border: 0; background: none; border-radius: 8px; font: inherit; font-size: 12px; font-weight: 650; color: var(--muted); cursor: pointer; transition: all .16s; }
.rc-seg button.active { background: #fff; color: var(--ink); box-shadow: 0 1px 3px rgba(16,24,40,.15); }
.rc-seg button:focus-visible { outline: 2px solid rgba(62,111,217,.45); outline-offset: 1px; }
.rc-time { white-space: nowrap; }
.rc-time b { display: block; font-size: 13px; font-weight: 750; }
.rc-time small { color: var(--faint); font-size: 11px; font-variant-numeric: tabular-nums; }
.rc-cust b { font-weight: 750; }
.rc-cust b em { font-style: normal; color: var(--faint); font-weight: 500; font-size: 12px; margin-left: 5px; }
.rc-cust small { display: block; color: var(--faint); font-size: 11px; margin-top: 1px; }
.rc-src { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #EFF2F5; color: var(--muted); font-size: 10.5px; font-weight: 650; margin-left: 6px; vertical-align: 1px; }
.rc-steps { display: inline-flex; gap: 4px; }
.rc-steps i { width: 8px; height: 8px; border-radius: 50%; background: #E2E6EA; }
.rc-steps i.on { background: radial-gradient(circle at 35% 30%, #34C39F, var(--teal)); box-shadow: 0 0 0 2px rgba(14,138,114,.12); }
.rc-note { color: var(--muted); font-size: 12px; max-width: 280px; line-height: 1.5; }

/* 右栏：高峰 + 转化链 */
.rc-tactic { display: grid; grid-template-columns: 52px 1fr 30px; gap: 11px; align-items: center; padding: 6px 0; }
.rc-tactic > span { color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.rc-rail { height: 16px; border-radius: 8px; background: #EFF2F5; overflow: hidden; }
.rc-rail i { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, #7EA4FF, #27866E); opacity: .8;
  animation: rcRailgrow 1.1s .5s cubic-bezier(.2,.85,.3,1) backwards; box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.rc-tactic.top .rc-rail i { background: linear-gradient(90deg, #F5B357, #E8703F); opacity: 1; box-shadow: 0 3px 12px -3px rgba(232,112,63,.55), inset 0 1px 0 rgba(255,255,255,.45); }
.rc-tactic b { font-size: 13px; text-align: right; color: var(--muted); }
.rc-tactic.top b { color: #D9750E; font-weight: 800; font-size: 14px; }
.rc-coach { position: relative; margin-top: 13px; padding: 12px 14px 12px 18px; border-radius: 13px; background: linear-gradient(160deg, rgba(245,179,87,.14), rgba(245,179,87,.06));
  color: var(--amber); font-size: 12.5px; line-height: 1.65; overflow: hidden; }
.rc-coach::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #F5B357, #E8703F); }
.rc-coach b { display: block; font-size: 10.5px; letter-spacing: .16em; margin-bottom: 3px; }
.rc-fm { display: grid; grid-template-columns: 60px 1fr 34px; gap: 11px; align-items: center; padding: 6px 0; }
.rc-fm > span { color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.rc-fm .rc-rail { height: 13px; border-radius: 7px; }
.rc-fm .rc-rail i { background: var(--jewel-grad); opacity: 1; animation-delay: .65s; }
.rc-fm b { font-size: 13px; text-align: right; }

@media (max-width: 1280px) { .rc-layout { grid-template-columns: 1fr; } }
@media (max-width: 1120px) { .rc-board { grid-template-columns: repeat(2, 1fr); } .rc-bcell + .rc-bcell::before { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .rc-rise, .rc-blk, .rc-minirail i, .rc-rail i { animation: none !important; }
  .rc-rise { opacity: 1; transform: none; }
  .rc-pulse, .rc-blk em, .rc-live-card.hot::before, .rc-blk.deal::after { animation: none !important; }
}

/* ===== 经营总结 + 报表中心 ===== */
.biz-summary-card .card-head { align-items: center; }
.biz-narrative { margin: 0; padding-left: 20px; display: grid; gap: 9px; }
.biz-narrative li { font-size: 13.5px; line-height: 1.65; color: var(--ink-2); }
.biz-narrative li b { color: var(--ink); font-variant-numeric: tabular-nums; }
.report-period-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.report-period-list .report-period { cursor: pointer; }
.report-period-list .report-period.active { background: linear-gradient(150deg, #2E55D4, #27866E); color: #fff; border-color: transparent; }
.report-detail { border-top: 1px solid var(--line); padding-top: 14px; }
.report-title { font-size: 15px; font-weight: 700; margin-bottom: 12px; }
.report-title small { color: var(--faint); font-weight: 500; margin-left: 8px; }
.report-strip { grid-template-columns: repeat(2, 1fr); margin-bottom: 14px; }
.bs-rotate-on { background: rgba(126, 164, 255, .25) !important; color: #cfe0ff !important; }

/* ===== 阶段二：分析卡 + 下钻 ===== */
.src-row { display: grid; grid-template-columns: 92px 1fr 76px auto; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px dashed var(--line); }
.src-row:last-child { border-bottom: none; }
.src-row > span { font-size: 12.5px; color: var(--ink-2); }
.src-track { height: 10px; border-radius: 6px; background: #EEF1F5; overflow: hidden; }
.src-track i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #2E55D4, #2C6BBE); }
.src-track i.teal { background: linear-gradient(90deg, #2C6BBE, #27866E); }
.src-row b { font-size: 12.5px; }
.src-row small { color: var(--faint); font-size: 11.5px; }
.trend-bar.drillable { cursor: pointer; }
.trend-bar.drillable:hover i { filter: brightness(1.15); }
.tbl .row-click { cursor: pointer; }
.tbl .row-click:hover td { background: #F4F7FB; }

/* ===== 组织管理 ===== */
.org-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.org-sec { font-size: 13px; font-weight: 700; color: var(--ink-2); margin: 18px 0 10px; }
.org-store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.org-store { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; display: grid; gap: 4px; }
.org-store b { font-size: 14px; }
.org-store span { color: var(--faint); font-size: 12px; }
.org-store.muted { opacity: .6; }

/* ===== 阶段五：全局搜索 / 通知铃铛 / 留存配置 ===== */
.top-search { display: flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: #F4F7FB; color: var(--faint); font-size: 12.5px; cursor: pointer; }
.top-search:hover { border-color: var(--blue); color: var(--ink-2); }
.top-search kbd { font-family: inherit; font-size: 11px; background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 1px 5px; }
.top-bell { position: relative; font-size: 15px; }
.gs-backdrop { position: fixed; inset: 0; z-index: 90; background: rgba(12,21,51,.35); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.gs-panel { position: fixed; z-index: 91; top: 12vh; left: 50%; transform: translateX(-50%); width: min(600px, 92vw); background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(12,21,51,.28); overflow: hidden; animation: desk-fade .16s; }
.gs-input { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.gs-input span { font-size: 18px; color: var(--faint); }
.gs-input input { flex: 1; border: none; outline: none; font-size: 15px; font-family: inherit; }
.gs-input kbd { font-family: inherit; font-size: 11px; color: var(--faint); border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; }
.gs-results { max-height: 56vh; overflow-y: auto; padding: 8px; }
.gs-hint { padding: 26px; text-align: center; color: var(--faint); font-size: 13px; }
.gs-group h4 { font-size: 11px; color: var(--faint); font-weight: 600; padding: 8px 10px 4px; text-transform: uppercase; letter-spacing: .5px; }
.gs-row { padding: 9px 12px; border-radius: 8px; cursor: pointer; }
.gs-row:hover { background: #F4F7FB; }
.gs-row b { display: block; font-size: 13.5px; }
.gs-row span { font-size: 12px; color: var(--faint); }
.notice-item { display: flex; gap: 10px; padding: 12px 4px; border-bottom: 1px solid var(--line); }
.notice-item.unread { background: linear-gradient(90deg, rgba(46,85,212,.05), transparent); }
.notice-dot { width: 8px; height: 8px; border-radius: 50%; background: #C7D0DC; margin-top: 6px; flex: none; }
.notice-item.unread .notice-dot { background: var(--blue); }
.notice-dot.amber { background: #E8A93B; } .notice-dot.red { background: var(--red); }
.notice-main { flex: 1; min-width: 0; }
.notice-main b { font-size: 13.5px; }
.notice-main p { font-size: 12.5px; color: var(--ink-2); margin: 2px 0; }
.notice-main small { color: var(--faint); font-size: 11.5px; }
.ret-store { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
.ret-rules { display: grid; gap: 8px; margin-top: 8px; }
.ret-rule { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.ret-rule span { color: var(--faint); }
.ret-apply { font-size: 12px; color: var(--ink-2); }

/* ===== 线索分配 ===== */
.lead-stat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.lead-cell { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; display: grid; gap: 4px; }
.lead-cell span { color: var(--faint); font-size: 12px; }
.lead-cell b { font-size: 22px; }
.lead-cell.hot { border-color: #E8A93B; background: rgba(232,169,59,.06); }
.lead-cell.warn { border-color: var(--red); background: rgba(211,63,63,.05); }
.lead-bulk { display: flex; align-items: center; gap: 10px; padding: 10px 14px; margin-bottom: 12px; background: #F4F7FB; border-radius: 10px; }
.lead-bulk select { height: 32px; border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; font-family: inherit; font-size: 13px; }
.lead-bulk b { font-size: 13px; }

/* ===== 平台控制台 /admin（深色） ===== */
.admin { min-height: 100vh; background: radial-gradient(1200px 600px at 20% -10%, #1a2947, #0c1428 60%); color: #e6edf7; }
.admin-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 26px; border-bottom: 1px solid rgba(255,255,255,.08); position: sticky; top: 0; background: rgba(12,20,40,.7); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); z-index: 10; }
.admin-brand { display: flex; align-items: center; gap: 12px; }
.admin-mark { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(150deg, #2E55D4, #27866E); display: grid; place-items: center; font-weight: 800; color: #fff; }
.admin-brand b { font-size: 15px; display: block; }
.admin-brand small { color: #8fa3c4; font-size: 12px; }
.admin-actions { display: flex; align-items: center; gap: 10px; }
.admin-actions input, .admin-actions select { height: 34px; border-radius: 9px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: #e6edf7; padding: 0 12px; font-family: inherit; font-size: 13px; }
.admin-actions input::placeholder { color: #6f83a6; }
.admin-btn { height: 34px; padding: 0 14px; border-radius: 9px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: #e6edf7; font-size: 13px; font-family: inherit; cursor: pointer; }
.admin-btn.primary { background: linear-gradient(150deg, #2E55D4, #27866E); border-color: transparent; }
.admin-btn:hover { border-color: rgba(255,255,255,.3); }
.admin-body { padding: 22px 26px 40px; }
.admin-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 20px; }
.admin-kpi { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); border-radius: 14px; padding: 16px 18px; }
.admin-kpi span { color: #8fa3c4; font-size: 12.5px; }
.admin-kpi b { display: block; font-size: 26px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.admin-kpi b.ok { color: #6ee7b7; }
.admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.admin-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); border-radius: 14px; padding: 16px 18px; transition: border-color .15s, transform .15s; }
.admin-card:hover { border-color: rgba(126,164,255,.5); transform: translateY(-2px); }
.admin-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.admin-card-top b { font-size: 15px; }
.admin-tag { font-size: 11px; padding: 2px 9px; border-radius: 999px; font-weight: 600; }
.admin-tag.active { background: rgba(110,231,183,.16); color: #6ee7b7; }
.admin-tag.warn { background: rgba(232,169,59,.18); color: #f0c674; }
.admin-tag.sleep { background: rgba(255,138,138,.15); color: #ff9d9d; }
.admin-card-owner { color: #8fa3c4; font-size: 12.5px; margin: 6px 0 12px; }
.admin-card-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-card-metrics span { display: block; color: #7d92b5; font-size: 11px; }
.admin-card-metrics b { font-size: 14px; font-variant-numeric: tabular-nums; }
.admin-card-foot { color: #6f83a6; font-size: 11.5px; margin-top: 10px; }
.admin-empty { color: #8fa3c4; text-align: center; padding: 40px; }
.audit-list { display: grid; gap: 2px; }
.audit-item { display: flex; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--line); }
.audit-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--blue); margin-top: 6px; flex: none; }
.audit-item b { font-size: 13px; }
.audit-item p { font-size: 12px; color: var(--ink-2); margin: 2px 0; }
.audit-item small { color: var(--faint); font-size: 11px; }

/* ===== 平台进入租户 ===== */
.admin-card-click { cursor: pointer; }
.admin-card-off { opacity: .55; }
.admin-enter-hint { color: #7ea4ff; font-weight: 600; }
.admin-card-foot { display: flex; align-items: center; justify-content: space-between; }
.top-return { background: linear-gradient(150deg, #2E55D4, #27866E) !important; color: #fff !important; border-color: transparent !important; }

/* 接待流水可点击行 */
.rc-flow-clickable { cursor: pointer; }
.rc-flow-clickable:hover td { background: #F4F7FB; }
.rc-cust small { color: var(--faint); }

/* 订单凭证 + PC大图 + 客户档案订单可点 */
.od-evidence { display: flex; flex-wrap: wrap; gap: 10px; }
.od-thumb { display: flex; flex-direction: column; gap: 4px; width: calc(33.33% - 7px); border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 6px; cursor: pointer; text-align: left; }
.od-thumb img { width: 100%; height: 120px; object-fit: cover; border-radius: 7px; background: #f2f4f3; }
.od-thumb small { color: var(--faint); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.od-thumb:hover { border-color: var(--blue); }
.od-file { display: block; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--ink); }
.od-file b { font-size: 13px; } .od-file small { display: block; color: var(--faint); font-size: 11px; margin-top: 2px; }
.appr-row-click { cursor: pointer; transition: background .12s; }
.appr-row-click:hover { background: #F4F7FB; }
.pc-lightbox { position: fixed; inset: 0; z-index: 6000; display: flex; align-items: center; justify-content: center; }
.pc-lightbox-backdrop { position: absolute; inset: 0; background: rgba(8,14,13,.9); backdrop-filter: blur(4px); }
.pc-lightbox figure { position: relative; margin: 0; max-width: 92vw; max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: 10px; z-index: 1; }
.pc-lightbox img { max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 10px; box-shadow: 0 18px 60px rgba(0,0,0,.55); }
.pc-lightbox figcaption { color: #fff; font-size: 13px; opacity: .85; }
.pc-lightbox-close { position: absolute; top: 20px; right: 24px; width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(255,255,255,.18); color: #fff; font-size: 26px; cursor: pointer; z-index: 2; }

/* 平台代管标识 */
.top-user.is-managed { position: relative; }
.managed-tag { display: inline-block; margin-left: 7px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #fff; background: linear-gradient(150deg, #2E55D4, #27866E); vertical-align: middle; }

/* ===== 全岗位 PC 工作台 ===== */
.role-command, .workflow-banner { margin-bottom: 14px; padding: 24px 26px; border: 1px solid rgba(16,24,40,.06); border-radius: var(--r-lg); background: #fff; box-shadow: var(--shadow-card); display: flex; align-items: center; justify-content: space-between; gap: 24px; position: relative; overflow: hidden; }
.role-command::after, .workflow-banner::after { content: ""; position: absolute; right: -34px; top: -74px; width: 180px; height: 180px; border: 1px solid rgba(37,105,179,.12); border-radius: 50%; pointer-events: none; }
.role-command h2, .workflow-banner h2 { margin: 4px 0 3px; font-size: clamp(21px, 2vw, 29px); line-height: 1.2; letter-spacing: -.02em; }
.role-command p, .workflow-banner p { color: var(--muted); font-size: 13px; }
.guide-command { border-left: 4px solid var(--blue); }
.finance-command { border-left: 4px solid var(--amber); }
.worker-command { border-left: 4px solid var(--teal); }
.workflow-banner { border-left: 4px solid var(--violet); }
.workflow-actions { display: flex; gap: 8px; position: relative; z-index: 1; }
.role-loop { margin-bottom: 14px; padding: 9px 16px; border-radius: var(--r-md); background: #111C38; color: #fff; display: flex; align-items: center; gap: 10px; }
.role-loop button { flex: 1; min-height: 42px; border-radius: 9px; display: flex; align-items: center; justify-content: center; gap: 9px; color: rgba(236,243,252,.72); transition: background .15s, color .15s; }
.role-loop button:hover, .role-loop button.active { background: rgba(255,255,255,.09); color: #fff; }
.role-loop button span { color: #79A9FF; font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.role-loop button b { font-size: 12.5px; }
.role-loop > i { color: rgba(255,255,255,.22); font-style: normal; }
.role-stats { grid-template-columns: repeat(5, minmax(128px, 1fr)); }
.role-main-grid, .case-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .72fr); align-items: start; gap: 16px; }
.role-missions { display: grid; gap: 9px; }
.role-mission { width: 100%; min-height: 72px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; text-align: left; transition: border-color .15s, transform .15s, background .15s; }
.role-mission:hover { transform: translateY(-1px); background: #F8FAFC; }
.role-mission > strong { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: #EEF3FB; color: var(--blue); font-size: 18px; }
.role-mission.red > strong { background: rgba(199,66,40,.1); color: var(--red); }
.role-mission.amber > strong { background: rgba(192,126,18,.12); color: var(--amber); }
.role-mission.teal > strong { background: rgba(14,138,114,.1); color: var(--teal); }
.role-mission span { min-width: 0; }
.role-mission b { display: block; font-size: 13.5px; }
.role-mission small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.role-mission > i { color: var(--blue); font-size: 12px; font-style: normal; font-weight: 650; }
.progress-pair { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 10px 0; border-bottom: 1px solid #F0F2F5; font-size: 12.5px; }
.progress-pair > i { grid-column: 1/-1; height: 6px; overflow: hidden; border-radius: 99px; background: #E7EBF1; }
.progress-pair > i u { display: block; height: 100%; border-radius: inherit; background: var(--jewel-grad); }
.role-note { margin-top: 12px; padding: 13px 14px; border-radius: 11px; background: #F3F7FB; }
.role-note b, .role-note span { display: block; }
.role-note b { font-size: 13px; }.role-note span { color: var(--muted); font-size: 12px; margin-top: 2px; }
.compact-list { display: grid; gap: 2px; }
.compact-list > button { width: 100%; padding: 10px 4px; border-bottom: 1px solid #F0F2F5; display: flex; justify-content: space-between; align-items: center; gap: 14px; text-align: left; }
.compact-list > button:hover { background: #F8FAFC; }
.compact-list b, .compact-list small { display: block; }.compact-list small { color: var(--faint); font-size: 11.5px; }
.compact-list strong { color: var(--ink-2); font-size: 12.5px; }.amber-text { color: var(--amber-deep) !important; }
.worker-preview { display: grid; gap: 4px; }
.worker-preview article { display: grid; grid-template-columns: 92px minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 12px 4px; border-bottom: 1px solid #F0F2F5; }
.worker-preview time { color: var(--blue); font-size: 12.5px; }.worker-preview time b { display: block; color: var(--faint); }
.worker-preview h3 { margin: 4px 0 1px; font-size: 14px; }.worker-preview p, .worker-preview > article > i { color: var(--muted); font-size: 12px; font-style: normal; }

/* 案例资产 */
.case-search { min-width: 250px; height: 36px; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; display: flex; align-items: center; gap: 7px; color: var(--faint); }
.case-search input { width: 100%; border: 0; outline: 0; font-size: 12.5px; }
.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.case-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.case-cover { height: 138px; position: relative; overflow: hidden; background: linear-gradient(145deg, #DCE7F7, #EEF4F3); display: grid; place-items: center; color: var(--blue); font-size: 24px; font-weight: 750; }
.case-cover img { width: 100%; height: 100%; object-fit: cover; }.case-cover .chip { position: absolute; top: 9px; right: 9px; }
.case-copy { padding: 12px 13px 8px; }.case-copy h3 { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 14px; }.case-copy p { margin: 2px 0 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--muted); font-size: 11.5px; }.case-copy > div { display: flex; gap: 12px; color: var(--faint); font-size: 11px; }
.case-actions { padding: 0 13px 12px; display: flex; gap: 7px; }
.case-side { display: grid; gap: 16px; }.coverage-list { display: grid; gap: 2px; }
.coverage-list > button { width: 100%; padding: 11px 4px; border-bottom: 1px solid #F0F2F5; display: flex; justify-content: space-between; gap: 16px; text-align: left; }.coverage-list > button:hover { background: #F8FAFC; }.coverage-list b, .coverage-list small { display: block; }.coverage-list small { color: var(--faint); font-size: 11.5px; }.coverage-list strong { color: var(--blue); text-align: right; }
.case-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }.case-detail-head h2 { margin: 8px 0 2px; font-size: 21px; }.case-detail-head p { color: var(--muted); font-size: 12px; }
.case-media { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 18px; }.case-media img { width: 100%; height: 148px; object-fit: cover; border-radius: 10px; background: var(--paper); }
.coverage-map-board { min-height: 210px; margin-bottom: 16px; padding: 24px; border-radius: 17px; background: linear-gradient(155deg, #122555, #104F52); color: #fff; display: flex; align-items: flex-end; justify-content: space-between; }.coverage-map-board b, .coverage-map-board span { display: block; }.coverage-map-board b { font-size: 26px; }.coverage-map-board span { opacity: .68; margin-top: 3px; }

/* 外勤与送装 */
.field-clock { font-size: 18px !important; }.field-route-list { display: grid; }.field-route-list article { display: grid; grid-template-columns: 32px 70px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 13px 4px; border-bottom: 1px solid #F0F2F5; }.route-index { width: 30px; height: 30px; border: 1px solid #C9D8EC; border-radius: 50%; display: grid; place-items: center; color: var(--blue); font-size: 12px; font-weight: 700; }.field-route-list time { color: var(--blue); font-weight: 650; }.field-route-list h3 { font-size: 13.5px; }.field-route-list p, .field-route-list small { color: var(--muted); font-size: 11.5px; }
.worker-task-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-top: 14px; }.worker-task { padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-card); }.worker-task.has-issue { border-color: rgba(199,66,40,.34); }.worker-task header, .worker-task footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.worker-task header time { color: var(--muted); font-size: 11.5px; }.worker-task h3 { margin: 14px 0 2px; font-size: 16px; }.worker-address { color: var(--muted); font-size: 12px; min-height: 38px; }.worker-task dl { margin: 12px 0; border-top: 1px solid #F0F2F5; }.worker-task dl > div { padding: 7px 0; border-bottom: 1px solid #F0F2F5; display: grid; grid-template-columns: 62px 1fr; gap: 8px; font-size: 11.5px; }.worker-task dt { color: var(--faint); }.worker-task dd { color: var(--ink-2); }.worker-task footer small { color: var(--muted); }

@media (max-width: 1240px) {
  .role-stats { grid-template-columns: repeat(3,1fr); }
  .case-layout, .role-main-grid { grid-template-columns: 1fr; }
  .case-side { grid-template-columns: repeat(2,1fr); }
  .worker-task-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 900px) {
  .role-command, .workflow-banner { align-items: flex-start; flex-direction: column; }
  .role-loop { overflow-x: auto; }.role-loop button { min-width: 88px; }.role-loop > i { display: none; }
  .role-stats { grid-template-columns: repeat(2,1fr); }
  .case-grid, .case-side, .worker-task-grid { grid-template-columns: 1fr; }
  .case-search { min-width: 190px; }.field-route-list article { grid-template-columns: 32px 54px 1fr; }.field-route-list article > .chip { grid-column: 3; justify-self: start; }
}
