/* =========================================================================
   设计系统：深蓝科技教育风（Stripe 主色基调 × IBM 企业级严谨 × Supabase 仪表盘结构）
   来源令牌：DESIGN.md § 3.1–3.6　三色体系：#2563EB 主操作蓝 / #1E3A8A 品牌深靛蓝 / #0891B2 科技青蓝
   状态色全局唯一：已连接=绿 待验证=黄 异常=红 草稿=灰 已发布=蓝
   ========================================================================= */

/* ---------- ① 设计令牌 ---------- */
:root{
  /* TailAdmin 蓝（对齐 prototype） */
  --color-primary:#465fff; --color-primary-hover:#3641f5; --color-primary-active:#2a31d8; --color-primary-soft:#ecf3ff;
  --color-brand:#1d2939; --color-brand-600:#101828;
  --color-accent:#0891B2; --color-accent-hover:#0E7490; --color-accent-bright:#22D3EE;
  /* 中性 / 背景 */
  --color-bg:#f9fafb; --color-surface:#FFFFFF; --color-surface-alt:#f2f4f7; --color-surface-sunken:#f2f4f7;
  --color-text-primary:#1d2939; --color-text-secondary:#475467; --color-text-tertiary:#98a2b3; --color-text-inverse:#FFFFFF;
  --color-border:#e4e7ec; --color-border-strong:#d0d5dd; --color-border-focus:#465fff;
  /* 语义 / 状态 */
  --color-success:#12b76a; --color-success-soft:#ecfdf3; --color-success-text:#027a48;
  --color-warning:#f79009; --color-warning-soft:#fffaeb; --color-warning-text:#b54708;
  --color-danger:#f04438;  --color-danger-soft:#fef3f2;  --color-danger-text:#b42318;
  --color-neutral:#667085; --color-neutral-soft:#f2f4f7; --color-neutral-text:#475467;
  --color-info:#465fff;    --color-info-soft:#ecf3ff;    --color-info-text:#3641f5;
  /* 图表（对齐 TailAdmin prototype） */
  --chart-1:#465fff; --chart-2:#0891b2; --chart-soft:#c2d6ff;
  /* 排版 */
  --font-sans:"Noto Sans SC","Noto Sans","PingFang SC","Microsoft YaHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --font-size-display:28px; --font-size-page-title:20px; --font-size-section:16px;
  --font-size-body:14px; --font-size-caption:12px; --font-size-micro:11px;
  /* 间距 / 布局 */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
  --layout-content-max:1600px; --layout-sidebar-w:290px; --layout-right-panel-w:320px; --layout-topbar-h:64px;
  /* 圆角 / 阴影 */
  --radius-sm:6px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-pill:9999px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.04); --shadow-md:0 2px 8px rgba(16,24,40,.06);
  --shadow-lg:0 8px 24px rgba(16,24,40,.08); --shadow-focus:0 0 0 3px rgba(70,95,255,.18);
  --shadow-xl:0 18px 48px -12px rgba(16,24,40,.12),0 6px 16px -8px rgba(16,24,40,.08);
  --shadow-card-hover:0 14px 40px -16px rgba(70,95,255,.22),0 6px 14px -10px rgba(16,24,40,.1);
  /* 渐变 / 品牌表达 */
  --grad-brand:linear-gradient(135deg,#465fff 0%,#3641f5 100%);
  --grad-brand-soft:linear-gradient(135deg,rgba(70,95,255,.10),rgba(8,145,178,.06));
  --grad-primary:linear-gradient(180deg,#7592ff 0%,#465fff 100%);
  --grad-primary-hover:linear-gradient(180deg,#9cb9ff 0%,#465fff 100%);
  --grad-mesh:radial-gradient(circle at 12% 8%,rgba(70,95,255,.14),transparent 32%),radial-gradient(circle at 88% 4%,rgba(8,145,178,.12),transparent 30%),radial-gradient(circle at 70% 96%,rgba(54,65,245,.08),transparent 36%);
  /* 类型色（工作流节点 & 指标强调） */
  --type-trigger:#22c55e; --type-timer:#0ea5e9; --type-ai:#8b5cf6; --type-rule:#f97316; --type-integration:#6366f1; --type-guard:#f43f5e; --type-action:#465fff; --type-condition:#f97316;
  /* 动效 */
  --ease-out:cubic-bezier(.16,1,.3,1); --ease-spring:cubic-bezier(.32,.72,0,1);
  --dur-fast:.14s; --dur-normal:.22s; --dur-slow:.4s;
  --z-modal:101; --z-overlay:100; --z-topbar:40;
}

/* ---------- ② 基础重置 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font-sans);font-size:var(--font-size-body);line-height:1.6;
  color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,p,figure,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0}
input,select,textarea{font:inherit}
svg{display:block}
table{border-collapse:collapse;width:100%}
[hidden]{display:none !important}
::selection{background:var(--color-primary-soft)}
.nav::-webkit-scrollbar,.scroll::-webkit-scrollbar{width:8px;height:8px}
.nav::-webkit-scrollbar-thumb,.scroll::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px}
.nav::-webkit-scrollbar-track,.scroll::-webkit-scrollbar-track{background:transparent}

/* ---------- ③ 图标（Lucide 风线性，描边随文字色） ---------- */
.icon{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-14{width:14px;height:14px}
.icon-18{width:18px;height:18px;stroke-width:1.6}
.icon-20{width:20px;height:20px;stroke-width:1.5}
.icon-28{width:28px;height:28px;stroke-width:1.4}

/* ---------- ④ 排版工具 ---------- */
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.fz11{font-size:11px}.fz12{font-size:12px}.fz13{font-size:13px}
.fw500{font-weight:500}.fw600{font-weight:600}
.muted{color:var(--color-text-secondary)}
.dim{color:var(--color-text-tertiary)}
.ok-text{color:var(--color-success-text)}
.warn-text{color:var(--color-warning-text)}
.err-text{color:var(--color-danger-text)}
.link{color:var(--color-primary);cursor:pointer}
.link:hover{text-decoration:underline}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.code{font-family:var(--font-mono);font-size:12px;background:var(--color-surface-sunken);
  border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 5px}

/* ---------- ⑤ 布局工具 ---------- */
.row{display:flex;align-items:center;gap:var(--space-3)}
.row-t{display:flex;align-items:flex-start;gap:var(--space-3)}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.spacer{flex:1;min-width:0}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}
.stack-2{display:flex;flex-direction:column;gap:var(--space-2)}
.stack-3{display:flex;flex-direction:column;gap:var(--space-3)}
.stack-6{display:flex;flex-direction:column;gap:var(--space-6)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}
.grid-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:var(--space-4);align-items:start}
.divider{height:1px;background:var(--color-border)}
.vdivider{width:1px;background:var(--color-border);align-self:stretch}

/* ---------- ⑥ AppShell：侧边栏 + 顶栏 ---------- */
.app{display:flex;min-height:100vh}
.mobile-nav-backdrop{display:none}
.sidebar{width:var(--layout-sidebar-w);flex:none;background:var(--color-surface);
  border-right:1px solid var(--color-border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0}
.brand{height:var(--layout-topbar-h);flex:none;display:flex;align-items:center;gap:12px;
  padding:0 var(--space-4);background:var(--color-surface);color:var(--color-text-primary);
  border-bottom:1px solid var(--color-border)}
.brand-name{font-size:14px;font-weight:500;letter-spacing:0;line-height:1.25;color:var(--color-text-primary)}
.brand-sub{display:none}
.nav{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-3) var(--space-6)}
.nav-group+.nav-group{margin-top:var(--space-3)}
.nav-group-title{font-size:var(--font-size-micro);font-weight:500;letter-spacing:.09em;
  color:var(--color-text-tertiary);padding:0 var(--space-4) var(--space-2)}
/* 侧边栏分组标题（可折叠 + 分类） */
.nav-group-head{display:flex;align-items:center;gap:8px;width:100%;height:36px;padding:0 12px;
  font-size:11px;font-weight:500;letter-spacing:.06em;color:rgba(52,64,84,.7);
  text-transform:uppercase;cursor:pointer;background:none;user-select:none;border-radius:8px}
.nav-group-head svg{color:inherit;flex:none}
.nav-group-head:hover{color:var(--color-text-secondary);background:var(--color-surface-alt)}
.nav-group-head:hover svg{color:var(--color-text-secondary)}
.nav-group-head .chev{margin-left:auto;transition:transform .2s ease}
.nav-group-head[aria-expanded="false"] .chev{transform:rotate(-90deg)}
.nav-group-body{display:flex;flex-direction:column;gap:2px;overflow:hidden;
  max-height:560px;opacity:1;transition:max-height .24s ease,opacity .18s ease;padding:2px 0}
.nav-group.collapsed .nav-group-body{max-height:0;opacity:0;padding:0}
.nav-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-radius:12px}
.nav-group-head:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-radius:8px}
.nav-item{display:flex;align-items:center;gap:12px;min-height:40px;padding:10px 12px;
  color:var(--color-text-secondary);border:0;border-radius:12px;cursor:pointer;
  background:transparent;width:100%;text-align:left;font-size:14px;
  transition:background .13s,color .13s}
.nav-item svg{width:20px;height:20px;flex:none;color:inherit}
.nav-item:hover{background:var(--color-primary-soft);color:var(--color-primary)}
.nav-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:500}
.nav-item .nav-tail{margin-left:auto;font-size:var(--font-size-micro);font-variant-numeric:tabular-nums}
.nav-flat{display:flex;flex-direction:column;gap:2px}
.pill-count{min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);
  display:inline-grid;place-items:center;font-size:10.5px;font-weight:600;
  background:var(--color-danger);color:#fff}
.pill-count.calm{background:var(--color-neutral-soft);color:var(--color-neutral-text)}
.sidebar-foot{flex:none;border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);
  display:flex;flex-direction:column;align-items:stretch;gap:0}
.avatar{width:32px;height:32px;flex:none;border-radius:10px;display:grid;place-items:center;
  overflow:hidden;background:var(--color-primary-soft);color:var(--color-primary);font-size:12px;font-weight:600}
.avatar.brandish{background:var(--color-primary);color:#fff}
.user-avatar-image{display:block;width:100%;height:100%;object-fit:cover}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:64px;flex:none;background:rgba(249,250,251,.8);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:12px;
  padding:0 20px;position:sticky;top:0;z-index:40}
.crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-tertiary);min-width:0}
.crumb .sep{opacity:.45;user-select:none}
.crumb strong{font-size:14px;font-weight:500;color:var(--color-text-primary)}
.searchbox{position:relative;width:280px}
.searchbox .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary)}
.searchbox input{width:100%;height:36px;padding:0 44px 0 36px;border:1px solid var(--color-border);
  border-radius:8px;background:var(--color-surface);outline:none;font-size:13px;color:var(--color-text-primary)}
.searchbox input:focus{border-color:var(--color-border-focus);background:#fff;box-shadow:var(--shadow-focus)}
.searchbox .kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--color-text-tertiary);
  border:1px solid var(--color-border);border-radius:6px;padding:1px 6px;background:var(--color-surface-alt);pointer-events:none}
.icon-btn{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;
  color:var(--color-text-secondary);cursor:pointer;position:relative;border:0;background:transparent}
.icon-btn:hover{background:var(--color-surface-alt);color:var(--color-text-primary)}
.icon-btn .dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;
  background:var(--color-danger);border:1.5px solid #fff}

.page{padding:var(--space-6);max-width:var(--layout-content-max);width:100%}
.page-head{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}
.page-title{font-size:var(--font-size-page-title);font-weight:600;line-height:1.4}
.page-desc{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-top:2px}
.section-title{font-size:var(--font-size-section);font-weight:600}
.eyebrow{font-size:var(--font-size-micro);font-weight:500;letter-spacing:.09em;color:var(--color-text-tertiary)}

/* ---------- ⑦ Button ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 var(--space-4);
  border:1px solid transparent;border-radius:var(--radius-md);font-size:14px;font-weight:500;
  cursor:pointer;white-space:nowrap;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast);
  -webkit-tap-highlight-color:transparent}
.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.btn-lg{height:40px;padding:0 var(--space-6);font-size:15px;border-radius:var(--radius-md)}
.btn-sm{height:28px;padding:0 10px;font-size:12px;gap:5px}
.btn-xs{height:24px;padding:0 8px;font-size:11px;gap:4px;border-radius:var(--radius-sm)}
.btn-primary{background:var(--grad-primary);color:#fff;border-color:transparent;box-shadow:0 1px 2px rgba(44,54,72,.30),0 4px 12px -6px rgba(44,54,72,.40)}
.btn-primary:hover{background:var(--grad-primary-hover);box-shadow:0 2px 4px rgba(44,54,72,.34),0 8px 18px -6px rgba(44,54,72,.46);transform:translateY(-1px)}
.btn-primary:active{background:#232B3A;transform:translateY(0);box-shadow:0 1px 2px rgba(35,43,58,.4)}
.btn-secondary{background:#fff;color:var(--color-primary);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}
.btn-secondary:hover{background:var(--color-primary-soft);border-color:var(--color-primary);transform:translateY(-1px)}
.btn-secondary:active{background:var(--color-info-soft);transform:translateY(0)}
.btn-danger{background:#fff;color:var(--color-danger);border-color:var(--color-danger);box-shadow:var(--shadow-sm)}
.btn-danger:hover{background:var(--color-danger-soft);transform:translateY(-1px)}
.btn-ghost{color:var(--color-text-secondary)}
.btn-ghost:hover{background:var(--color-surface-alt);color:var(--color-text-primary)}
.btn-ghost:active{background:var(--color-border)}
.btn:disabled,.btn[disabled]{background:var(--color-surface-alt);color:var(--color-text-tertiary);
  border-color:var(--color-border);cursor:not-allowed;box-shadow:none;transform:none}
.btn-block{width:100%}

/* ---------- ⑧ StatusBadge（5 态全局唯一） + Tag ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-sm);
  font-size:var(--font-size-micro);font-weight:500;line-height:1.45;white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dot);flex:none}
.badge.nodot::before{display:none}
.s-connected{--dot:var(--color-success);background:var(--color-success-soft);color:var(--color-success-text)}
.s-pending  {--dot:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning-text)}
.s-error    {--dot:var(--color-danger); background:var(--color-danger-soft); color:var(--color-danger-text)}
.s-draft    {--dot:var(--color-neutral);background:var(--color-neutral-soft);color:var(--color-neutral-text)}
.s-published{--dot:var(--color-info);   background:var(--color-info-soft);   color:var(--color-info-text)}
.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--color-border);
  border-radius:var(--radius-sm);font-size:var(--font-size-micro);font-weight:500;
  color:var(--color-text-secondary);background:var(--color-surface-alt);white-space:nowrap}
.tag-accent{color:var(--color-accent);border-color:var(--color-accent);background:#fff}
.tag-primary{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-soft)}

/* ---------- ⑨ Card ---------- */
.card{background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);position:relative}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 18%)}
.card-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);
  border-bottom:1px solid var(--color-border);min-height:52px;position:relative}
.card-body{padding:var(--space-5);position:relative}
.card-body.tight{padding:var(--space-4)}
.card-body.flush{padding:0}
.card-foot{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);
  background:var(--color-surface-alt);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.card-hover{transition:box-shadow var(--dur-normal) var(--ease-out),border-color var(--dur-normal) var(--ease-out),transform var(--dur-normal) var(--ease-out)}
.card-hover:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-primary);transform:translateY(-3px)}
.sunken{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md)}

/* ---------- ⑩ KPI ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:var(--space-4)}
.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.kpi-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}
.kpi-value{font-size:var(--font-size-display);font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums;
  letter-spacing:-.01em}
.kpi-value .unit{font-size:13px;font-weight:500;color:var(--color-text-tertiary);margin-left:3px}
.kpi-foot{font-size:var(--font-size-micro);color:var(--color-text-tertiary);display:flex;align-items:center;gap:5px;
  font-variant-numeric:tabular-nums}
.kpi-spark{margin-top:auto;height:22px}
.kpi-spark svg{width:100%;height:22px}
.kpi.alarm{border-color:var(--color-warning)}
.kpi.alarm .kpi-value{color:var(--color-warning-text)}

/* ---------- ⑪ DataTable ---------- */
.table{font-size:var(--font-size-body)}
.table thead th{height:40px;padding:0 var(--space-4);text-align:left;font-size:var(--font-size-caption);
  font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-alt);
  border-bottom:1px solid var(--color-border-strong);letter-spacing:.02em;white-space:nowrap}
.table tbody td{padding:12px var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:middle}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .1s}
.table tbody tr:hover{background:var(--color-primary-soft)}
.table.zebra tbody tr:nth-child(even){background:var(--color-surface-alt)}
.table.zebra tbody tr:nth-child(even):hover{background:var(--color-primary-soft)}
.table .n{text-align:right;font-variant-numeric:tabular-nums}
.table tbody tr.sel td{background:var(--color-primary-soft)}
.table tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}
.table-wrap{overflow-x:auto}
.toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--color-border);flex-wrap:wrap}

/* ---------- ⑫ Form ---------- */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.label{font-size:var(--font-size-caption);font-weight:500;color:var(--color-text-secondary);
  display:flex;align-items:center;gap:4px}
.label .req{color:var(--color-primary)}
.input,.select,.textarea{width:100%;height:36px;padding:0 14px;border:1px solid var(--color-border-strong);
  border-radius:var(--radius-md);font-size:14px;color:var(--color-text-primary);background:#fff;outline:none;
  transition:border-color .13s,box-shadow .13s,background .13s}
.input-lg{height:42px;font-size:15px}
.textarea{height:auto;min-height:84px;padding:10px 14px;line-height:1.65;resize:vertical}
.input::placeholder,.textarea::placeholder{color:var(--color-text-tertiary)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}
.select{appearance:none;padding-right:30px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center}
.input:disabled,.select:disabled,.textarea:disabled{background:var(--color-surface-alt);color:var(--color-text-tertiary);cursor:not-allowed}
.input.is-error,.select.is-error{border-color:var(--color-danger)}
.input.is-error:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.hint{font-size:var(--font-size-caption);color:var(--color-text-tertiary);line-height:1.5}
.err{font-size:var(--font-size-caption);color:var(--color-danger-text);display:flex;align-items:center;gap:4px}
.input-group{display:flex;align-items:stretch}
.input-group .input{border-radius:var(--radius-md) 0 0 var(--radius-md)}
.input-group .btn{border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:0;height:auto}
.addon{display:inline-flex;align-items:center;padding:0 10px;font-size:12px;color:var(--color-text-secondary);
  background:var(--color-surface-alt);border:1px solid var(--color-border-strong);border-right:0;
  border-radius:var(--radius-md) 0 0 var(--radius-md);white-space:nowrap}
.addon+.input{border-radius:0 var(--radius-md) var(--radius-md) 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.form-grid.one{grid-template-columns:1fr}
.fieldset{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);background:#fff}
.fieldset-title{font-size:var(--font-size-caption);font-weight:600;color:var(--color-text-secondary);
  letter-spacing:.04em;margin-bottom:var(--space-4);display:flex;align-items:center;gap:6px}

.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--color-text-primary)}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .track{width:36px;height:20px;flex:none;border-radius:var(--radius-pill);
  background:var(--color-border-strong);position:relative;transition:background .15s}
.switch .track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.2);transition:transform .15s}
.switch input:checked+.track{background:var(--color-primary)}
.switch input:checked+.track::after{transform:translateX(16px)}
.switch input:focus-visible+.track{box-shadow:var(--shadow-focus)}

.check{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:13px;line-height:1.5}
.check input{appearance:none;width:16px;height:16px;flex:none;margin:2px 0 0;position:relative;
  border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fff;cursor:pointer}
.check input:checked{background:var(--color-primary);border-color:var(--color-primary)}
.check input:checked::after{content:"";position:absolute;left:4.5px;top:1px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg)}
.check input[type=radio]{border-radius:50%}
.check input[type=radio]:checked{background:#fff;border:5px solid var(--color-primary)}
.check input[type=radio]:checked::after{display:none}
.check-card{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid var(--color-border);
  border-radius:var(--radius-md);cursor:pointer;background:#fff;transition:border-color .13s,background .13s}
.check-card:hover{border-color:var(--color-border-strong);background:var(--color-surface-alt)}
.check-card.on{border-color:var(--color-primary);background:var(--color-primary-soft)}

/* ---------- ⑬ Tabs / Segmented ---------- */
.tabs{display:flex;gap:var(--space-5);border-bottom:1px solid var(--color-border)}
.tab{padding:0 1px 10px;font-size:14px;font-weight:500;color:var(--color-text-secondary);
  border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.tab:hover{color:var(--color-text-primary)}
.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.seg{display:inline-flex;background:var(--color-surface-alt);border:1px solid var(--color-border);
  border-radius:var(--radius-md);padding:2px;flex:none}
.seg button{height:26px;padding:0 11px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;
  color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.seg button:hover{color:var(--color-text-primary)}
.seg button.is-on{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}

/* ---------- ⑭ Alert / 空态 / 权限拦截 ---------- */
.alert{display:flex;gap:10px;padding:11px 13px;border:1px solid;border-radius:var(--radius-md);
  font-size:13px;line-height:1.55;align-items:flex-start}
.alert .icon{margin-top:2px}
.alert-info{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-info-text)}
.alert-ok{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success-text)}
.alert-warn{background:var(--color-warning-soft);border-color:var(--color-warning);color:var(--color-warning-text)}
.alert-err{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger-text)}
.alert-neutral{background:var(--color-surface-alt);border-color:var(--color-border-strong);color:var(--color-text-secondary)}
.empty{padding:var(--space-10) var(--space-6);text-align:center;color:var(--color-text-tertiary)}
.no-perm{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);
  padding:var(--space-16) var(--space-6);text-align:center}
.no-perm .ring{width:52px;height:52px;border-radius:var(--radius-pill);display:grid;place-items:center;
  background:var(--color-neutral-soft);color:var(--color-neutral);border:1px solid var(--color-border)}

/* ---------- ⑮ Stepper ---------- */
.stepper{display:flex;align-items:flex-start;padding:var(--space-2) 0}
.step{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;
  cursor:pointer;padding:0 2px}
.step::before,.step::after{content:"";position:absolute;top:11px;height:1px;background:var(--color-border)}
.step::before{left:0;width:50%}
.step::after{left:50%;width:50%}
.step:first-child::before,.step:last-child::after{display:none}
.step.done::before,.step.done::after,.step.current::before{background:var(--color-primary)}
.step-dot{width:24px;height:24px;border-radius:var(--radius-pill);display:grid;place-items:center;
  border:1.5px solid var(--color-border-strong);background:#fff;color:var(--color-text-tertiary);
  font-size:12px;font-weight:600;position:relative;z-index:1;font-variant-numeric:tabular-nums;transition:all .15s}
.step.done .step-dot{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
.step.current .step-dot{border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-focus)}
.step-label{font-size:var(--font-size-caption);color:var(--color-text-tertiary);text-align:center;line-height:1.4}
.step.done .step-label{color:var(--color-text-secondary)}
.step.current .step-label{color:var(--color-text-primary);font-weight:500}

/* ---------- ⑯ Modal / Drawer ---------- */
.overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:100;opacity:0;visibility:hidden;
  transition:opacity .18s,visibility .18s}
.overlay.open{opacity:1;visibility:visible}
.modal{position:fixed;z-index:101;left:50%;top:50%;transform:translate(-50%,-48%);
  width:min(1120px,calc(100vw - 64px));height:min(880px,calc(100vh - 56px));
  background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;overflow:hidden;opacity:0;visibility:hidden;
  transition:opacity .18s,transform .18s,visibility .18s}
.modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.modal-sm{width:min(560px,calc(100vw - 64px));height:auto;max-height:calc(100vh - 96px)}
.modal-head{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);
  border-bottom:1px solid var(--color-border)}
.modal-title{font-size:var(--font-size-section);font-weight:600}
.modal-body{flex:1;overflow-y:auto;padding:var(--space-6)}
.modal-foot{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);
  border-top:1px solid var(--color-border);background:var(--color-surface-alt)}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:101;width:min(680px,94vw);background:#fff;
  border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .22s cubic-bezier(.32,.72,0,1);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer-narrow{width:min(360px,92vw)}
.drawer-head{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);
  border-bottom:1px solid var(--color-border)}
.drawer-body{flex:1;overflow-y:auto;padding:var(--space-5)}
.drawer-foot{flex:none;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);
  background:var(--color-surface-alt);display:flex;gap:var(--space-3);align-items:center}

/* ---------- ⑰ 其他复用件 ---------- */
.meta-list{display:flex;flex-direction:column}
.meta-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:7px 0;
  border-bottom:1px dashed var(--color-border);font-size:13px}
.meta-row:last-child{border-bottom:0}
.meta-row .k{width:88px;flex:none;color:var(--color-text-secondary);font-size:12px}
.meta-row .v{flex:1;min-width:0;font-weight:500}
.bar{height:6px;border-radius:var(--radius-pill);background:var(--color-surface-sunken);overflow:hidden}
.bar>span{display:block;height:100%;border-radius:var(--radius-pill);background:var(--color-primary)}
.bar>span.accent{background:var(--color-accent)}
.bar>span.ok{background:var(--color-success)}
.bar>span.warn{background:var(--color-warning)}
.bar>span.err{background:var(--color-danger)}
.kv{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--color-text-secondary)}
.kv b{font-size:14px;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}
.pre{font-family:var(--font-mono);font-size:12px;line-height:1.65;background:var(--color-surface-sunken);
  border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;margin:0;
  overflow:auto;white-space:pre;color:var(--color-text-primary);max-height:260px}
.list-rows>li{display:flex;align-items:center;gap:var(--space-3);padding:11px var(--space-5);
  border-bottom:1px solid var(--color-border)}
.list-rows>li:last-child{border-bottom:0}
.list-rows>li:hover{background:var(--color-surface-alt)}
.dot-line{width:6px;height:6px;border-radius:50%;flex:none;background:var(--color-text-tertiary)}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-4)}
.quick{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#fff;
  border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;
  transition:box-shadow .15s,border-color .15s}
.quick:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}
.quick .qi{width:36px;height:36px;flex:none;border-radius:var(--radius-md);display:grid;place-items:center;
  background:var(--color-primary-soft);color:var(--color-primary)}
.quick .qi.cyan{background:#ECFEFF;color:var(--color-accent)}
.quick .qt{font-size:14px;font-weight:500}
.quick .qd{font-size:11px;color:var(--color-text-tertiary);margin-top:1px}
.quick .chev{margin-left:auto;color:var(--color-text-tertiary)}
.view-flag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-sm);
  background:var(--color-brand);color:#fff;font-size:var(--font-size-micro);font-weight:500}
.scroll{overflow-y:auto}
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.001ms !important;animation-duration:.001ms !important;
    animation-iteration-count:1 !important;scroll-behavior:auto !important}
}

.main{height:100vh;overflow:hidden}

/* ---------- 实例前端功能化扩展：直接接入后端 API，不再使用静态 iframe ---------- */
#liveApp{height:100dvh;min-height:0;overflow:hidden}
#liveApp::before{content:"";position:fixed;z-index:1000;top:0;left:0;width:38%;height:3px;
  background:var(--color-primary);opacity:0;transform:translateX(-110%);pointer-events:none}
#liveApp.is-interacting::before{opacity:1;animation:interactionProgress 1.05s ease-in-out infinite}
#liveApp .is-action-pending{position:relative;cursor:progress!important;pointer-events:none}
#liveApp .is-action-pending>*{opacity:.35}
#liveApp .is-action-pending::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;
  margin:-7px 0 0 -7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;
  animation:interactionSpin .7s linear infinite;pointer-events:none}
#liveApp>.app{height:100dvh;min-height:0;overflow:hidden}
#liveApp .main{height:100dvh;min-height:0;overflow:hidden}
#liveApp .sidebar{height:100dvh}
#liveApp .app-boot{height:100dvh;display:grid;place-items:center;background:var(--color-bg);padding:32px}
#liveApp .app-boot-card{width:min(420px,100%);padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-md)}
#liveApp .app-boot-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--color-text-primary);font-weight:700}
#liveApp .app-boot-logo{width:28px;height:28px;border-radius:8px;background:var(--grad-brand);box-shadow:0 10px 24px -16px rgba(70,95,255,.8)}
.live-stage{flex:1;min-width:0;min-height:0;height:calc(100dvh - var(--layout-topbar-h));overflow:hidden;background:var(--color-bg)}
.nav-group-head{font-size:13.5px;letter-spacing:.08em;text-transform:none}
.nav-item{font-size:13.5px;letter-spacing:.01em;text-transform:none}
.nav-item.is-hidden{display:none}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:linear-gradient(180deg,#FBFCFE 0%,#F2F4F8 100%)}
.auth-card{width:min(560px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:28px}
.auth-card h1{font-size:24px;margin:4px 0 8px}.auth-card p{color:var(--color-text-secondary)}
.account-summary{display:grid;gap:8px;margin:18px 0}.account-summary div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.feedback{margin:12px 0;padding:10px 12px;border-radius:var(--radius-md);font-size:12px}.feedback.info{background:var(--color-info-soft);color:var(--color-info-text);border:1px solid #bfdbfe}.feedback.ok{background:var(--color-success-soft);color:var(--color-success-text);border:1px solid #bbf7d0}.feedback.warn{background:var(--color-warning-soft);color:var(--color-warning-text);border:1px solid #fde68a}.feedback.err{background:var(--color-danger-soft);color:var(--color-danger-text);border:1px solid #fecaca}
.feedback-stack{position:fixed;left:50%;top:24px;transform:translateX(-50%);z-index:120;display:grid;gap:10px;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:hidden;pointer-events:none}
.feedback-stack .feedback{margin:0;box-shadow:var(--shadow-lg);background:#fff}
.form{display:grid;gap:14px}.field>span{font-size:var(--font-size-caption);font-weight:500;color:var(--color-text-secondary);display:flex;align-items:center;gap:4px}
textarea{width:100%;min-height:84px;padding:10px 14px;line-height:1.65;resize:vertical;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;color:var(--color-text-primary);outline:none;transition:border-color .13s,box-shadow .13s;font-family:inherit;font-size:14px}textarea::placeholder{color:var(--color-text-tertiary)}textarea:focus{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}
.code-editor{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;line-height:1.55;tab-size:2;background:#101828;color:#f2f4f7;border-color:#344054}
.code-editor::placeholder{color:#98a2b3}.code-editor:focus{border-color:#84caff;box-shadow:0 0 0 3px rgba(46,144,250,.18)}
.checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary)}.checkbox input{accent-color:var(--color-primary)}
.btn-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-row.end{justify-content:flex-end}.w100{width:100%}
.page .card{overflow:hidden}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}
.metric-card{padding:16px}.metric-card .k{font-size:12px;color:var(--color-text-secondary)}.metric-card .v{font-size:27px;font-weight:750;letter-spacing:-.03em;margin-top:4px}.metric-card .h{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}
.live-grid{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:12px;align-items:stretch;min-height:0}.agent-chat-pane{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;height:100%;gap:0}.agent-chat-pane.profile-open{grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:12px}.two-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-4);align-items:start}
.customer-list{display:flex;flex:1 1 0;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0}.customer-card{width:100%;text-align:left;padding:13px 15px;border-bottom:1px solid var(--color-border);cursor:pointer;background:#fff}.customer-card:hover{background:var(--color-surface-alt)}.customer-card.active{background:var(--color-primary-soft);box-shadow:inset 3px 0 0 var(--color-primary)}
.customer-top{display:flex;justify-content:space-between;gap:10px}.customer-name{font-weight:650}.customer-preview{margin-top:5px;font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .message-list{height:430px;overflow:auto;padding:18px;background:linear-gradient(180deg,#fff,var(--color-surface-alt));border-bottom:1px solid var(--color-border)}
.message{display:flex;gap:10px;margin-bottom:14px}.message.outbound{flex-direction:row-reverse}.message-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:700;flex:none}.message.outbound .message-avatar{background:var(--color-brand);color:#fff}
  .message-body{max-width:76%}.message-meta{font-size:11px;color:var(--color-text-tertiary);margin-top:4px}.message.outbound .message-meta{text-align:right}.workflow-run-tag{display:inline-flex;align-items:center;margin-left:6px;padding:1px 5px;border-radius:4px;background:var(--color-info-soft);color:var(--color-info-text);font-size:10px}.bubble{padding:10px 14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface-alt);box-shadow:var(--shadow-sm);white-space:pre-wrap}.message.outbound .bubble{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
.composer{padding:14px 16px;background:#fff}.detail-list{display:grid;gap:9px}.detail-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--color-border);font-size:12px}.detail-row:last-child{border-bottom:0}.detail-row span{color:var(--color-text-secondary)}.detail-row b{text-align:right}
.small-note{font-size:11px;color:var(--color-text-tertiary);line-height:1.6}
.config-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4)}.config-list{display:grid;gap:10px}.config-item{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}
.workflow-page{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:var(--space-4);align-items:stretch;min-height:0}.workflow-page.library-collapsed{grid-template-columns:48px minmax(0,1fr) 320px}.workflow-library-panel.collapsed{min-height:0}.workflow-library-panel.collapsed .card-head{padding:12px 8px;justify-content:center}.workflow-library-panel.collapsed .card-head h2,.workflow-library-panel.collapsed .card-head p,.workflow-library-panel.collapsed .node-library{display:none}.collapse-label{display:none}.workflow-library-panel.collapsed .collapse-label{display:block;writing-mode:vertical-rl;color:var(--color-text-secondary);font-size:12px;font-weight:700;letter-spacing:.08em}.node-library{display:grid;gap:9px;overflow:auto}.node-template{width:100%;text-align:left;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;cursor:grab}.node-template:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}
.workflow-board-scroll{height:calc(100vh - 260px);min-height:420px;overflow:auto;background:#f8fbff;border:1px dashed #bfd0ea;border-radius:var(--radius-lg)}.workflow-zoom-surface{position:relative;min-width:100%;min-height:100%}.workflow-board{position:relative;min-width:0;transform-origin:0 0;background-image:radial-gradient(#cbd5e1 1px,transparent 1px);background-size:22px 22px}
.workflow-edges{position:absolute;inset:0;pointer-events:none}.workflow-edge{fill:none;stroke:#9ca3af;stroke-width:2}.workflow-edge.condition{stroke:#f97316;stroke-dasharray:6 5}.workflow-edge.handoff{stroke:#dc2626;stroke-width:2.4;stroke-dasharray:none}.workflow-edge-label{font-size:11px;fill:#64748b}.workflow-edge-label.handoff{fill:#b91c1c;font-weight:700}
.workflow-node{position:absolute;z-index:2;width:260px;min-height:132px;padding:12px;border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:var(--shadow-md);cursor:grab;user-select:none}.workflow-node:hover{border-color:var(--color-primary)}.workflow-node.active{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.14),var(--shadow-md)}.workflow-node.dragging{cursor:grabbing;opacity:.92}
.workflow-node header,.workflow-node footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.workflow-node strong{display:block;margin:8px 0 5px}.workflow-node p{font-size:12px;color:var(--color-text-secondary);line-height:1.45}.node-type-chip{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase}.node-type-chip i{width:8px;height:8px;border-radius:50%;background:var(--color-primary)}
.workflow-node.ai .node-type-chip i{background:#8b5cf6}.workflow-node.integration .node-type-chip i{background:#6366f1}.workflow-node.rule .node-type-chip i,.workflow-node.condition .node-type-chip i,.workflow-node.guard .node-type-chip i{background:#f97316}.workflow-node.timer .node-type-chip i{background:#0ea5e9}.workflow-node.trigger .node-type-chip i{background:#22c55e}
.drag-handle{color:var(--color-text-tertiary)}.workflow-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.workflow-subnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.workflow-subnav strong{font-size:12px;color:var(--color-text-secondary);margin-right:4px}.trace{display:grid;gap:8px}.trace-row{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.trace-row .num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:700;flex:none}.mini-bars{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:120px minmax(0,1fr) 42px;gap:10px;align-items:center;font-size:12px}.bar{height:8px;border-radius:999px;background:var(--color-surface-sunken);overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--color-primary)}.workflow-binding{margin-top:12px;padding:12px;border:1px solid #bfdbfe;border-radius:var(--radius-md);background:var(--color-primary-soft)}.workflow-binding strong{display:block;margin-bottom:4px}.workflow-binding .btn{margin-top:10px}.risk-help{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.risk-help .config-item{background:#fff}.wakeup-flow{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.wakeup-step{position:relative;padding:14px;border:1px solid var(--color-border);border-radius:14px;background:#fff}.wakeup-step:after{content:"";position:absolute;top:50%;right:-12px;width:12px;border-top:2px solid var(--color-border-strong)}.wakeup-step:last-child:after{display:none}.wakeup-step b{display:block;margin-bottom:6px}.wakeup-step p{font-size:12px;color:var(--color-text-secondary);line-height:1.55}
.node-config-section{display:grid;gap:12px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-alt)}
.node-config-section+.node-config-section{margin-top:2px}.node-config-title{display:flex;align-items:flex-start;gap:10px}.node-config-title svg{color:var(--color-primary);margin-top:2px}.node-config-title strong{display:block;font-size:13px}.node-config-title p{font-size:11px;color:var(--color-text-tertiary);line-height:1.5}
.node-config-section textarea{min-height:76px}
.model-key-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.model-key-state{height:36px;display:flex;align-items:center}.inline-checks{display:grid;grid-template-columns:1fr;gap:8px}.inline-checks .checkbox{margin:0}
.skill-config-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:var(--space-4);align-items:stretch}.skill-config-layout>.card{min-height:0}.skill-version-panel{min-height:0;display:flex;flex-direction:column}.skill-version-panel .card-body{min-height:0;display:flex;flex:1 1 auto;flex-direction:column}.skill-version-panel .skill-file-list{min-height:0;flex:1 1 auto;max-height:none;overflow-y:auto;scrollbar-gutter:stable;padding-right:4px}.knowledge-config-layout{align-items:stretch}.knowledge-config-layout>.card{min-height:0;display:flex;flex-direction:column}.knowledge-version-panel{min-height:0;display:flex;flex-direction:column}.knowledge-version-panel .card-body{min-height:0;display:flex;flex-direction:column}.knowledge-version-list{min-height:0;flex:1 1 auto;max-height:360px;overflow-y:auto;scrollbar-gutter:stable;padding-right:4px}.skill-folder-picker{display:grid;gap:10px;padding:18px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-alt)}.skill-folder-picker input[type=file]{width:100%;font-size:12px;color:var(--color-text-secondary)}.skill-folder-picker input[type=file]::file-selector-button{height:34px;margin-right:10px;padding:0 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;color:var(--color-text-primary);cursor:pointer}.skill-file-list{display:grid;gap:7px;max-height:300px;overflow:auto}.skill-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:9px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.skill-file-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.skill-file-row span{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.skill-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-json{font-family:var(--font-mono);font-size:12px;min-height:168px}.rule-condition-preview{display:block;max-width:360px;white-space:normal;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary)}
.page{max-width:none;height:100%;min-height:0;overflow:auto;display:flex;flex-direction:column}.page-head{flex:none}.agent-screen,.workflow-screen{overflow:hidden}.agent-screen>.agent-workspace{display:flex;flex:1 1 0;min-height:0;overflow:hidden}.agent-screen .live-grid{flex:1 1 0;width:100%;height:100%;min-height:0}.agent-screen .customer-queue-card,.agent-screen .conversation-card,.agent-screen .customer-side-card,.agent-screen .agent-chat-pane{display:flex;min-width:0;min-height:0;height:100%;flex-direction:column;overflow:hidden}.agent-screen .agent-chat-pane{display:grid}.agent-screen .customer-queue-card>.card-head,.agent-screen .conversation-card>.card-head,.agent-screen .customer-side-card>.card-head{flex:0 0 auto}.conversation-head-user{display:flex;align-items:center;gap:10px;min-width:0}.conversation-head-user .cust-avatar{width:34px;height:34px;font-size:12px}.conversation-head-actions{display:flex;align-items:center;gap:8px;flex:none}.btn-profile-toggle.is-active{background:var(--color-primary-soft);color:var(--color-primary);border-color:transparent}.btn-profile-toggle{display:inline-flex;align-items:center;gap:6px}.agent-screen .message-list{height:auto;flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.agent-screen .customer-side-card .card-body{flex:1 1 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0}.workflow-screen .workflow-list,.workflow-screen .workflow-editor{flex:1;min-height:0;overflow:auto}.workflow-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,360px));gap:var(--space-4);justify-content:start;align-content:start}.workflow-project-card{padding:18px;display:flex;flex-direction:column;gap:12px;min-height:210px}.workflow-project-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.workflow-project-card .project-icon{width:40px;height:40px;border-radius:12px;background:var(--color-primary-soft);color:var(--color-primary);display:grid;place-items:center}.workflow-project-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.workflow-editor{display:flex;flex-direction:column}.workflow-editor-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex:none}.workflow-editor-body{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:var(--space-4);align-items:stretch;min-height:0;flex:1}.workflow-editor-body.library-collapsed{grid-template-columns:48px minmax(0,1fr) 320px}.workflow-editor-body .card{min-height:0;display:flex;flex-direction:column}.workflow-editor-body .card-body{min-height:0;overflow:auto}.workflow-canvas-column{min-width:0;display:flex;flex-direction:column;min-height:0}.workflow-zoom{display:flex;align-items:center;gap:6px}.workflow-zoom .zoom-value{min-width:42px;text-align:center;font-size:12px;color:var(--color-text-secondary)}
.knowledge-config-page{display:block;overflow-y:auto;overflow-x:hidden;min-height:0;padding-bottom:var(--space-8);scrollbar-gutter:stable}
.knowledge-module{display:grid;gap:16px;padding-bottom:var(--space-8)}.knowledge-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;border:1px solid var(--color-border);border-radius:18px;background:linear-gradient(135deg,#f8fbff 0%,#fff 58%,#f8fafc 100%);box-shadow:var(--shadow-sm)}.knowledge-title{margin:4px 0 6px;font-size:24px;line-height:1.2;font-weight:700;color:var(--color-text-primary)}.knowledge-hero-status,.knowledge-toolbar-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.knowledge-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.knowledge-summary-card{padding:16px 18px;border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.knowledge-summary-card span,.knowledge-summary-card small{display:block;color:var(--color-text-tertiary);font-size:12px}.knowledge-summary-card strong{display:block;margin:6px 0 4px;font-size:18px;color:var(--color-text-primary)}.knowledge-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0}.knowledge-tabs{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-alt)}.knowledge-tab{border:0;border-radius:9px;background:transparent;color:var(--color-text-secondary);padding:9px 14px;font:inherit;font-size:13px;cursor:pointer}.knowledge-tab:hover{color:var(--color-text-primary);background:#fff}.knowledge-tab.active{background:#fff;color:var(--color-primary);font-weight:650;box-shadow:var(--shadow-sm)}.knowledge-content-grid,.knowledge-test-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px;align-items:stretch}.knowledge-content-grid>.card,.knowledge-test-grid>.card{min-height:0}.knowledge-upload-card .card-body,.knowledge-publish-card .card-body,.knowledge-preview-page .card-body,.knowledge-test-card .card-body,.knowledge-diagnostic-card .card-body{padding:20px}.knowledge-upload-drop{min-height:190px;align-content:start}.knowledge-publish-state{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:12px;background:var(--color-surface-alt);border:1px solid var(--color-border)}.knowledge-publish-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--color-primary-soft);color:var(--color-primary);flex:none}.knowledge-detail-list{margin-top:16px}.knowledge-publish-actions{margin-top:18px}.knowledge-preview-overview{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface-alt)}.knowledge-preview-hint{display:flex;align-items:center;gap:8px;margin-top:14px;color:var(--color-text-secondary);font-size:13px}.knowledge-empty-card{padding:22px}.knowledge-result-wrap,.knowledge-diagnostic-result{margin-top:16px}.knowledge-result-summary,.knowledge-preview-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;color:var(--color-text-tertiary);font-size:12px}.knowledge-result-summary span,.knowledge-preview-meta span{padding:5px 8px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-alt)}.knowledge-score-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;color:var(--color-text-tertiary);font-size:11px}.knowledge-score-row .btn{margin-left:auto}.knowledge-preview-drawer{width:min(860px,78vw)}.knowledge-preview-drawer-body{padding:22px;background:#f8fafc}.knowledge-chunk-list{display:grid;gap:12px}.knowledge-chunk-card{padding:16px;border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.knowledge-chunk-card.is-target{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.knowledge-chunk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.knowledge-chunk-head strong{display:block;margin-top:4px;font-size:14px}.knowledge-chunk-card p{margin:0;white-space:pre-wrap;line-height:1.7;color:var(--color-text-secondary)}.knowledge-preview-loading{max-width:720px;margin:0 auto}
.knowledge-overview-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;background:#fff}.knowledge-overview-main,.knowledge-overview-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.knowledge-overview-main strong{font-size:13px}.knowledge-overview-meta{justify-content:flex-end;color:var(--color-text-tertiary);font-size:12px}.knowledge-overview-meta span{display:inline-flex;align-items:center;gap:5px}.knowledge-content-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}.knowledge-side-stack{display:grid;gap:16px;align-content:start;min-width:0}.knowledge-embedding-card .card-body{padding:16px}.knowledge-embedding-card .form{gap:11px}.knowledge-index-state{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-alt);font-size:12px}.knowledge-index-state span{color:var(--color-text-secondary)}.knowledge-upload-drop{min-height:0;border:1px dashed var(--color-border-strong);border-radius:8px;background:var(--color-surface-alt);transition:border-color .15s,background .15s,box-shadow .15s}.knowledge-upload-drop.is-dragover{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 3px var(--color-primary-soft)}.knowledge-upload-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:22px}.knowledge-upload-main p{margin:4px 0 0;color:var(--color-text-tertiary);font-size:12px}.knowledge-upload-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#fff;color:var(--color-primary);border:1px solid var(--color-border)}.knowledge-file-trigger{position:relative;overflow:hidden;cursor:pointer}.knowledge-file-trigger input{position:absolute;inset:0;opacity:0;cursor:pointer}.knowledge-upload-preview{border-top:1px solid var(--color-border);padding:14px 16px}.knowledge-selected-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.knowledge-upload-preview .skill-file-list{max-height:220px}.knowledge-upload-preview .warn-text{margin-top:8px}.knowledge-upload-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.knowledge-publish-card .detail-list{margin-top:0}.knowledge-toolbar-meta .icon-btn{width:32px;height:32px}.knowledge-preview-page .card-body{min-height:220px}.knowledge-chunk-head>div:first-child{min-width:0}.knowledge-chunk-head .dim{display:block;margin-top:5px;overflow-wrap:anywhere}.knowledge-chunk-actions{display:flex;gap:6px;flex:none}.knowledge-chunk-actions .icon-btn{width:32px;height:32px}.knowledge-chunk-actions .icon-btn.danger{color:var(--color-danger)}.knowledge-chunk-actions .icon-btn.danger:hover{background:var(--color-danger-soft)}.knowledge-chunk-edit{display:grid;gap:10px}.knowledge-chunk-edit textarea{width:100%;min-height:150px;max-height:420px;resize:vertical;line-height:1.65}.knowledge-chunk-edit .btn .icon{margin-right:5px}
.app.sidebar-collapsed .sidebar{width:72px}
.app.sidebar-collapsed .brand{justify-content:center;padding:0 12px}
.app.sidebar-collapsed .brand-name,.app.sidebar-collapsed .nav-group-head span,.app.sidebar-collapsed .nav-group-head .chev,.app.sidebar-collapsed .nav-label,.app.sidebar-collapsed .nav-tail,.app.sidebar-collapsed .sidebar-foot .spacer{display:none}
.app.sidebar-collapsed .nav-group-head,.app.sidebar-collapsed .nav-item{justify-content:center;padding:10px;border:0}
.app.sidebar-collapsed .sidebar-foot{display:none}
.app.sidebar-collapsed .sidebar-foot .icon-btn{display:none}
.compact-agent-page{padding:12px 14px}
.compact-agent-page .card-head{min-height:42px;padding:10px 14px}
.compact-agent-page .page-desc{display:none}
.manual-composer{display:grid;flex:0 0 auto;position:sticky;bottom:0;z-index:2;gap:8px;padding:10px 14px;border-top:1px solid var(--color-border);background:#fff;box-shadow:0 -4px 12px rgba(15,23,42,.04)}
.manual-composer .form{gap:8px}.manual-composer .field{gap:4px}.manual-composer .btn-row{flex-wrap:nowrap}.manual-composer .btn-row .btn{height:30px;min-width:0;padding:0 10px;font-size:12px}.manual-composer textarea{height:52px;min-height:52px;max-height:52px;resize:none}.manual-composer-disabled{background:var(--color-surface-alt)}
.conversation-card .bubble{overflow-wrap:anywhere;word-break:break-word}

/* ---------- 销售 Agent IM 皮肤（对齐聊天参考图） ---------- */
.agent-screen.compact-agent-page{padding:14px 16px;background:var(--color-bg)}
.agent-screen.compact-agent-page > .page-head{margin-bottom:10px}
.agent-screen .customer-queue-card .queue-search-wrap{padding:12px 14px 8px}
.agent-screen .customer-queue-card,
.agent-screen .conversation-card,
.agent-screen .customer-side-card{border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px -12px rgba(16,24,40,.08)}
.agent-screen .customer-queue-card::before,
.agent-screen .conversation-card::before,
.agent-screen .customer-side-card::before{display:none}
.agent-screen .customer-queue-card>.card-head,
.agent-screen .conversation-card>.card-head{border-bottom:1px solid var(--color-border);min-height:64px;padding:12px 16px;align-items:center}
.agent-screen .customer-queue-card>.card-head{border-bottom:0;padding:12px 16px 8px}
.agent-screen .customer-side-task-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 2px}
.agent-screen .customer-side-task-actions .btn{flex:1 1 132px;justify-content:center}
.agent-screen .queue-search-wrap{flex:none;padding:0 12px 10px}
.agent-screen .queue-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-alt)}
.agent-screen .queue-search .icon{color:var(--color-text-tertiary);flex:none}
.agent-screen .queue-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:13px;color:var(--color-text-primary)}
.agent-screen .queue-search input::placeholder{color:var(--color-text-tertiary)}
.agent-screen .customer-list{padding:4px 8px 12px;gap:2px}
.agent-screen .customer-card{display:flex;gap:12px;border:0;border-bottom:0;border-radius:14px;padding:10px 12px;min-height:64px;background:transparent;align-items:center}
.agent-screen .customer-card:hover{background:var(--color-surface-alt)}
.agent-screen .customer-card.active{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:none}
.agent-screen .customer-card.active .customer-name,
.agent-screen .customer-card.active .customer-preview,
.agent-screen .customer-card.active .customer-time{color:inherit}
.agent-screen .customer-name-row{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto}
.agent-screen .customer-name-row .customer-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agent-screen .customer-tag-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;margin-top:2px}
.agent-screen .customer-tag-row .serve-mode-tag{max-width:100%}
.serve-mode-tag{
  display:inline-flex;align-items:center;flex:none;padding:1px 6px;border-radius:999px;
  font-size:10px;font-weight:600;line-height:1.4;letter-spacing:.02em;
}
.serve-mode-tag.is-ai{background:var(--color-primary-soft);color:var(--color-primary)}
.serve-mode-tag.is-human{background:var(--color-warning-soft);color:var(--color-warning-text)}
.serve-mode-tag.is-overdue{background:var(--color-danger-soft);color:var(--color-danger-text)}
.agent-screen .customer-card.active .serve-mode-tag.is-ai{background:#fff;color:var(--color-primary)}
.agent-screen .customer-card.active .serve-mode-tag.is-human{background:#fff;color:var(--color-warning-text)}
.agent-screen .customer-card.active .serve-mode-tag.is-overdue{background:#fff;color:var(--color-danger-text)}
.agent-screen .customer-card.is-pinned{background:#fffaf0}
.agent-screen .customer-card.is-pinned:hover{background:#fff7e6}
.agent-screen .customer-card.active.is-pinned{background:var(--color-primary-soft)}
.agent-screen .customer-actions{display:inline-flex;align-items:center;gap:6px;flex:none}
.agent-screen .customer-pin-btn{
  height:24px;min-width:52px;padding:0 7px;border:0;border-radius:4px;
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;flex:none;
  font-size:12px;font-weight:500;line-height:1;
}
.agent-screen .customer-pin-btn:hover{background:var(--color-surface-alt);color:var(--color-text-primary)}
.agent-screen .customer-pin-btn.is-pinned{color:var(--color-text-primary);background:var(--color-surface-alt)}
.agent-screen .customer-pin-btn .icon{width:13px;height:13px;stroke-width:2}
.agent-screen .customer-pin-label{line-height:1;white-space:nowrap}
.conversation-title-row{display:flex;align-items:center;gap:8px;min-width:0}
.conversation-title-row .section-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agent-screen .customer-card.active .cust-avatar{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-primary-soft)}
.agent-screen .customer-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px;box-shadow:none}
.agent-screen .cust-avatar{position:relative;width:42px;height:42px;font-size:14px;overflow:visible;flex:none}
.agent-screen .cust-avatar:has(.cust-avatar-img){background:transparent;border-color:transparent;padding:0}
.agent-screen .cust-avatar-img{width:42px;height:42px;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--color-border)}
.agent-screen .customer-card.active .cust-avatar:has(.cust-avatar-img){background:transparent;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-primary-soft)}
.agent-screen .message-avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.agent-screen .avatar-status{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:var(--color-border-strong);z-index:1}
.agent-screen .avatar-status.online{background:var(--color-success)}
.agent-screen .avatar-status.away{background:var(--color-warning)}
.agent-screen .customer-main{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2px}
.agent-screen .customer-name{font-size:14px;font-weight:600;color:var(--color-text-primary);line-height:1.3}
.agent-screen .customer-preview{margin-top:0;font-size:12px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
.agent-screen .customer-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px}
.agent-screen .customer-actions{align-self:start}
.agent-screen .customer-time{font-size:11px;color:var(--color-text-tertiary);flex:none;white-space:nowrap;line-height:24px}
.agent-screen .conversation-head-user{display:flex;align-items:center;gap:12px;min-width:0}
.agent-screen .conversation-head-user .cust-avatar,
.agent-screen .conversation-head-user .cust-avatar-img{width:42px;height:42px}
.agent-screen .conversation-card .section-title{font-size:15px;font-weight:600;line-height:1.3}
.agent-screen .conversation-card .conversation-sub{margin:2px 0 0;font-size:12px;color:var(--color-text-tertiary);line-height:1.35}
.agent-screen .message-list{background:#fff;border-bottom:0;padding:20px 22px}
.agent-screen .message{margin-bottom:18px;gap:12px}
.agent-screen .message-avatar,
.agent-screen .message-avatar-img{width:32px;height:32px}
.agent-screen .bubble{border:0;border-radius:16px;padding:11px 14px;box-shadow:none}
.agent-screen .message.inbound .bubble{background:#eef1f6;color:var(--color-text-primary)}
.agent-screen .message.outbound .bubble{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:none}
.agent-screen .message-text + .message-attachments{margin-top:8px}
.agent-screen .message-attachments{display:grid;gap:8px}
.agent-screen .message-attachment-image{display:block;max-width:min(260px,62vw);max-height:220px;border-radius:12px;object-fit:cover;background:rgba(15,23,42,.08)}
.agent-screen .message-attachment-file{display:inline-flex;align-items:center;gap:7px;max-width:260px;padding:8px 10px;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:var(--color-text-primary);font-size:12px;text-decoration:none}
.agent-screen .message-attachment-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.agent-screen .message-attachment-file span{flex:none;color:var(--color-text-tertiary)}
.agent-screen .message.outbound .message-attachment-file{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff}
.agent-screen .message.outbound .message-attachment-file span,.agent-screen .message.outbound .message-attachment-file .icon{color:rgba(255,255,255,.78)}
.agent-screen .message-meta{margin-top:6px}
.agent-screen .im-composer{padding:12px 16px 14px;border-top:1px solid var(--color-border);box-shadow:none;background:#fff}
.agent-screen .im-composer-form{display:flex;align-items:center;gap:10px;margin:0;flex-wrap:wrap}
.agent-screen .im-tool-btn{flex:none;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--color-text-secondary);display:grid;place-items:center;cursor:pointer}
.agent-screen .im-ai-control-btn{width:auto;min-width:74px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap}
.agent-screen .im-attach-btn{position:relative;overflow:hidden}
.agent-screen .im-attach-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.agent-screen .im-attachment-tray{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:8px;padding-left:120px;padding-right:52px}
.agent-screen .im-attachment-chip{display:inline-flex;align-items:center;gap:7px;max-width:210px;height:34px;padding:4px 8px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-alt);font-size:12px;color:var(--color-text-secondary)}
.agent-screen .im-attachment-thumb{width:24px;height:24px;border-radius:6px;object-fit:cover;flex:none}
.agent-screen .im-attachment-chip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--color-text-primary)}
.agent-screen .im-attachment-chip span{flex:none;color:var(--color-text-tertiary)}
.agent-screen .im-attachment-remove{flex:none;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:var(--color-text-tertiary);display:grid;place-items:center;cursor:pointer}
.agent-screen .im-attachment-remove:hover{background:#fff;color:var(--color-danger)}
.agent-screen .im-tool-btn:hover{background:var(--color-surface-alt);color:var(--color-primary)}
.agent-screen .im-tool-btn:disabled{opacity:.45;cursor:not-allowed}
.agent-screen .im-composer-input{flex:1;min-width:0;height:42px;min-height:42px;max-height:42px;padding:10px 4px;border:0;outline:0;resize:none;background:transparent;box-shadow:none;font:inherit;font-size:14px;line-height:1.45;color:var(--color-text-primary)}
.agent-screen .im-composer-input:focus{border:0;box-shadow:none}
.agent-screen .im-composer-input::placeholder{color:var(--color-text-tertiary)}
.agent-screen .im-send-btn{flex:none;width:40px;height:40px;border:0;border-radius:12px;background:var(--color-primary);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 14px -6px rgba(70,95,255,.55)}
.agent-screen .im-send-btn:hover{background:var(--color-primary-hover)}
.agent-screen .im-send-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.agent-screen .im-send-btn[aria-busy="true"]{opacity:1;cursor:wait;background:var(--color-primary)}
.agent-screen .im-send-spinner{animation:interactionSpin .7s linear infinite;transform-origin:center}
.agent-screen .im-composer-disabled{background:#fff}
.agent-screen .im-composer-disabled .im-composer-input{color:var(--color-text-tertiary)}
.agent-screen .btn-profile-toggle{
  width:36px;height:36px;padding:0;border:1px solid var(--color-border-strong);border-radius:10px;
  background:#fff;color:var(--color-text-secondary);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 1px 2px rgba(16,24,40,.06);transition:border-color .13s,background .13s,color .13s,box-shadow .13s
}
.agent-screen .btn-profile-toggle:hover{
  border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft);
  box-shadow:0 0 0 3px rgba(70,95,255,.12)
}
.agent-screen .btn-profile-toggle.is-active{
  background:var(--color-primary-soft);color:var(--color-primary);border-color:transparent
}
.agent-screen .btn-profile-toggle:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.agent-screen .conversation-head-actions{display:flex;align-items:center;gap:8px;flex:none;align-self:center}
.sidebar-foot-row{display:flex;align-items:center;gap:6px;width:100%}
.sidebar-foot-main{flex:1;min-width:0;border:0;background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit}
.sidebar-foot-main:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}
.sidebar-user-avatar{border-radius:50%;border:1px solid var(--color-border)}
.profile-page{display:grid;gap:16px;max-width:880px}
.profile-hero{display:flex;align-items:center;gap:16px;min-width:0}
.profile-hero .avatar{width:72px;height:72px;font-size:28px;border-radius:50%}
.profile-avatar-editor{display:flex;align-items:center;gap:12px;flex:none}
.profile-avatar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.profile-avatar-actions input[type="file"]{display:none}
.profile-avatar-actions .is-disabled{pointer-events:none;opacity:.55}
.profile-hero-meta{min-width:0}
.profile-hero-meta h2{margin:0;font-size:20px;font-weight:650}
.profile-hero-meta p{margin:4px 0 0;font-size:13px;color:var(--color-text-secondary)}
.profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin-top:22px}
.profile-field>span{display:block;font-size:12px;color:var(--color-text-tertiary);margin-bottom:4px}
.profile-field>b{display:block;font-size:14px;font-weight:550;color:var(--color-text-primary);word-break:break-word}
.password-change-feedback{display:flex;align-items:flex-start;gap:9px;min-height:42px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;line-height:1.55}
.password-change-feedback .icon{margin-top:1px}
.password-change-feedback.info{border-color:#bfdbfe;background:var(--color-info-soft);color:var(--color-info-text)}
.password-change-feedback.ok{border-color:#b7ebd0;background:var(--color-success-soft);color:var(--color-success-text)}
.password-change-feedback.err{border-color:#f3c7c7;background:var(--color-danger-soft);color:var(--color-danger-text)}
.password-change-submit{min-width:126px}
.password-change-submit.is-pending .icon{animation:interactionSpin .8s linear infinite}
@media(max-width:720px){.profile-fields{grid-template-columns:1fr}}

.agent-screen .customer-list,.agent-screen .message-list,.agent-screen .customer-side-card .card-body{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}
.agent-screen .customer-list::-webkit-scrollbar,.agent-screen .message-list::-webkit-scrollbar,.agent-screen .customer-side-card .card-body::-webkit-scrollbar{width:9px}
.agent-screen .customer-list::-webkit-scrollbar-thumb,.agent-screen .message-list::-webkit-scrollbar-thumb,.agent-screen .customer-side-card .card-body::-webkit-scrollbar-thumb{background:var(--color-border-strong);border:2px solid transparent;border-radius:999px;background-clip:padding-box}
.message-avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--color-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.auth-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.dashboard-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.date-filter{display:grid;gap:2px;font-size:11px;color:var(--color-text-secondary)}.date-filter input{height:32px;padding:0 8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;color:var(--color-text-primary)}
.customer-detail-card{margin-top:16px;overflow:auto}.customer-analysis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.customer-analysis-grid .detail-row{min-width:0}.customer-notes{margin-top:16px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}.customer-notes .small-note{margin-top:4px}.transcript-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.transcript-list{max-height:320px;overflow:auto;margin-top:10px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fbff}.transcript-list .message:last-child{margin-bottom:0}.security-card{width:100%;max-width:none}.security-card .card-body{max-width:560px}.organization-card{min-height:0}.organization-card .table-wrap{overflow:auto}.org-role-select{min-width:132px;height:28px;font-size:12px}.org-member-identity{display:flex;align-items:center;gap:10px;min-width:190px}.org-member-avatar{width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border)}.org-member-meta{display:grid;gap:2px;min-width:0}.org-member-name{display:flex;align-items:center;gap:4px;min-width:0}.org-member-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-name-edit-btn{width:28px;height:28px;flex:none}
.page.customer-info-page>.card{flex:none}.page.customer-info-page>.customer-detail-card{flex:1;min-height:260px}.page.customer-info-page .customer-detail-card .card-body{overflow:visible}
.crm-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.crm-head-actions .searchbox{width:280px}@media(max-width:900px){.crm-head-actions{width:100%}.crm-head-actions .searchbox{width:100%;flex:1;min-width:0}}
@media(max-width:1180px){.workflow-page,.workflow-page.library-collapsed,.two-grid,.skill-config-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.workflow-board-scroll{height:560px}.risk-help,.wakeup-flow{grid-template-columns:1fr}.wakeup-step:after{display:none}.workflow-editor-body{grid-template-columns:220px minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(260px,auto)}.workflow-editor-body.library-collapsed{grid-template-columns:48px minmax(0,1fr)}.workflow-editor-body .workflow-inspector{grid-column:1 / -1;max-height:420px;overflow:auto}}
@media(max-width:1000px){.agent-screen .live-grid{grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:10px}.agent-chat-pane.profile-open{grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:10px}.agent-screen .customer-side-card .detail-row{display:grid;gap:2px}.agent-screen .customer-side-card .detail-row b{text-align:left}.topbar .searchbox{width:180px}}
@media(max-width:720px){.sidebar{display:none}.app:not(.sidebar-collapsed) .sidebar{display:flex;position:fixed;z-index:70;inset:0 auto 0 0;width:min(var(--layout-sidebar-w),85vw);height:100dvh;box-shadow:var(--shadow-xl)}.app:not(.sidebar-collapsed) .mobile-nav-backdrop{display:block;position:fixed;z-index:60;inset:0;border:0;background:rgba(16,24,40,.34);cursor:pointer}.topbar{padding:0 14px}.topbar .searchbox{display:none}.topbar>.row:last-child,.topbar>.vdivider{display:none}.page{padding:16px}.compact-agent-page{padding:10px}.feedback-stack{top:12px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.metric-grid,.config-grid{grid-template-columns:1fr}.message-body{max-width:88%}.agent-screen .live-grid{grid-template-columns:minmax(160px,200px) minmax(0,1fr);gap:8px}.agent-chat-pane.profile-open{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(280px,40%);gap:8px}.workflow-editor-body,.workflow-editor-body.library-collapsed{grid-template-columns:1fr;grid-template-rows:auto minmax(420px,1fr) auto}.workflow-editor-body .workflow-library-panel{max-height:280px}.workflow-editor-body .workflow-inspector{grid-column:auto;max-height:380px}}
@media(max-width:560px){.profile-hero{align-items:flex-start;flex-direction:column}.profile-avatar-editor{width:100%;flex-wrap:wrap}}
@media(max-width:620px){.workflow-card-grid{grid-template-columns:minmax(0,1fr)}.agent-screen{overflow-y:auto}.agent-screen>.agent-workspace{display:block;overflow:visible;flex:none}.agent-screen .live-grid{height:auto;display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(480px,calc(100dvh - var(--layout-topbar-h) - 20px))}.agent-screen .customer-queue-card{height:260px}.agent-screen .agent-chat-pane{height:calc(100dvh - var(--layout-topbar-h) - 20px);min-height:480px}.agent-screen .conversation-card{height:100%;min-height:0}.agent-screen .customer-side-card{height:auto;min-height:280px}.agent-screen .im-attachment-tray{padding-left:0;padding-right:0}.agent-screen .im-attachment-chip{max-width:100%}}
@media(max-width:900px){.customer-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-actions{justify-content:flex-start}}

/* =========================================================================
   Premium Polish Layer —— 在不破坏既有令牌与结构的前提下叠加的视觉增强层
   覆盖：登录页网格渐变 + 玻璃卡、侧栏深度、顶栏、指标卡趋势火花线、
   客户卡头像未读点、对话气泡节奏、工作流节点类型色轨、空态图标、
   骨架屏、吐司、入场动画、滚动条、可达性聚焦。
   ========================================================================= */

/* ---------- 登录页：静态背景 + 毛玻璃 ---------- */
.auth-shell{
  background:linear-gradient(180deg,#FBFCFE 0%,#F2F4F8 100%);
  position:relative;overflow:hidden;
}
.auth-float{position:relative;z-index:1;width:min(560px,100%)}
.auth-card{
  position:relative;overflow:hidden;
  background:rgba(255,255,255,.56);
  -webkit-backdrop-filter:blur(30px) saturate(150%);backdrop-filter:blur(30px) saturate(150%);
  border:1px solid rgba(255,255,255,.66);
  box-shadow:var(--shadow-xl),inset 0 1px 0 rgba(255,255,255,.9);
}
.auth-card::after{
  content:"";position:absolute;left:10%;right:10%;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);
}
.auth-card h1{background:linear-gradient(180deg,#1A2433,#3b4252);-webkit-background-clip:text;background-clip:text}
#liveApp .app-boot .skeleton,.auth-shell .skeleton,.auth-shell .feedback{animation:none}
.auth-login-submit,
.auth-login-submit:hover,
.auth-login-submit:active{
  background:#fff;color:var(--color-text-primary);border-color:var(--color-border-strong);
  box-shadow:var(--shadow-sm);transform:none;transition:none
}
.auth-login-submit:disabled,.auth-login-submit[disabled]{background:#fff;color:var(--color-text-tertiary)}
.account-summary div{transition:border-color .15s,background .15s}
.account-summary div:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}

/* ---------- 侧栏 / 顶栏：对齐 3001 TailAdmin chrome ---------- */
.sidebar{background:#fff}
.brand{background:#fff;height:64px}
.brand-sub{display:none}
.nav-item{transition:background .13s,color .13s}
.nav-item:hover,.nav-item.active{background:var(--color-primary-soft);color:var(--color-primary)}
.nav-item.active{font-weight:500}
.sidebar-foot{background:#fff;padding:12px}
.sidebar-foot-main{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:12px}
.sidebar-foot-main:hover{background:var(--color-primary-soft)}
.topbar{box-shadow:none}
  /* —— 销售工作台（对齐 3001 SalesWorkbench 布局，CSS 近似图表） —— */
  .sales-wb{display:flex;flex-direction:column;gap:20px;max-width:var(--layout-content-max)}
  .sales-wb-greet{font-size:24px;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}
  .sales-wb-top{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:stretch}
  .sales-wb-left{display:flex;flex-direction:column;gap:16px;min-width:0}
  .sales-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .sales-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:16px 20px;cursor:pointer;text-align:left;transition:box-shadow .15s,border-color .15s}
  .sales-kpi:hover{border-color:rgba(70,95,255,.35);box-shadow:var(--shadow-md)}
  .sales-kpi .ico{width:40px;height:40px;border-radius:12px;background:var(--color-surface-alt);display:grid;place-items:center;margin-bottom:8px;color:var(--color-text-primary)}
  .sales-kpi .lbl{font-size:13px;color:var(--color-text-secondary);margin-bottom:6px}
  .sales-kpi .row-end{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
  .sales-kpi .val{font-size:30px;font-weight:700;letter-spacing:-.02em;tabular-nums;line-height:1}
  .trend-up,.trend-down{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
  .trend-up{background:#ecfdf3;color:#039855}
  .trend-down{background:#fef3f2;color:#d92d20}
  .sales-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);display:flex;flex-direction:column;min-height:0}
  .sales-card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 8px}
  .sales-card-hd h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}
  .sales-card-hd p{margin:4px 0 0;font-size:14px;color:var(--color-text-secondary)}
  .sales-card-bd{padding:0 20px 16px;flex:1}
  .sales-card-ft{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 12px;border-top:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:0 0 var(--radius-xl) var(--radius-xl);text-align:center}
  .sales-card-ft .k{font-size:14px;color:var(--color-text-secondary)}
  .sales-card-ft .v{margin-top:4px;font-size:22px;font-weight:700;tabular-nums}
  /* 月度目标卡：对齐参考图比例 */
  .goal-card{min-height:100%;overflow:hidden}
  .goal-card > .sales-card-bd{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    flex:1 1 auto;padding:4px 16px 8px;min-height:0;
  }
  .goal-card .sales-card-ft{gap:0;padding:14px 0;background:#f8f9fb;flex:0 0 auto}
  .goal-card .sales-card-ft > div{position:relative;padding:0 10px}
  .goal-card .sales-card-ft > div:not(:last-child)::after{
    content:"";position:absolute;right:0;top:16%;bottom:16%;width:1px;background:#e5e7eb;
  }
  .goal-card .sales-card-ft .k{font-size:14px;line-height:1.2}
  .goal-card .sales-card-ft .v{margin-top:6px;font-size:22px;font-weight:700;color:var(--color-text-primary);line-height:1.2}
  .sales-btn-ghost{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--color-text-secondary)}
  .sales-btn-ghost:hover{background:var(--color-surface-alt);color:var(--color-text-primary)}
  .sales-btn-dots{
    border:0;background:transparent;width:32px;height:32px;border-radius:8px;cursor:pointer;
    color:var(--color-text-tertiary);display:inline-grid;place-items:center;padding:0;flex:none;
  }
  .sales-btn-dots:hover{background:var(--color-surface-alt);color:var(--color-text-secondary)}
  .sales-btn-dots .icon{width:18px;height:18px}
  /* 跟进趋势：分组柱 + 坐标 */
  .trend-chart{display:grid;grid-template-columns:28px 1fr;gap:8px;min-height:168px}
  .trend-y{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:4px 0 22px;font-size:11px;color:var(--color-text-tertiary);tabular-nums}
  .trend-plot{display:flex;flex-direction:column;min-width:0}
  .trend-grid{position:relative;flex:1;display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid #e8ecf2;background-image:repeating-linear-gradient(to top,transparent,transparent calc(25% - .5px),#eef1f6 calc(25% - .5px),#eef1f6 25%);padding:8px 4px 0;min-height:140px}
  .trend-col{position:relative;flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;min-width:0;height:100%;cursor:pointer}
  .trend-col i{display:block;width:42%;max-width:18px;border-radius:4px 4px 0 0;min-height:4px;transition:opacity .15s}
  .trend-col:hover i{opacity:.92}
  .trend-col i.c{background:var(--chart-1)}
  .trend-col i.d{background:var(--chart-2)}
  .trend-tip{
    position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);
    z-index:6;min-width:108px;padding:8px 10px;border-radius:8px;
    background:#111827;color:#fff;font-size:11px;line-height:1.45;
    box-shadow:0 8px 20px rgba(15,23,42,.22);pointer-events:none;
    opacity:0;visibility:hidden;transition:opacity .12s ease;
    white-space:nowrap;
  }
  .trend-tip:after{
    content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);
    border:5px solid transparent;border-top-color:#111827;
  }
  .trend-tip .wk{display:block;font-weight:600;margin-bottom:4px}
  .trend-tip .row{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .trend-tip .row span{display:inline-flex;align-items:center;gap:5px;color:#e5e7eb}
  .trend-tip .dot{width:7px;height:7px;border-radius:2px;flex:none}
  .trend-tip .dot.c{background:var(--chart-1)}
  .trend-tip .dot.d{background:var(--chart-2)}
  .trend-tip b{font-variant-numeric:tabular-nums;color:#fff}
  .trend-col:hover .trend-tip,.trend-col:focus-within .trend-tip{opacity:1;visibility:visible}
  .trend-x{display:flex;gap:10px;padding:6px 4px 0}
  .trend-x span{flex:1;text-align:center;font-size:11px;color:var(--color-text-tertiary)}
  .trend-legend{display:flex;gap:14px;justify-content:flex-end;margin-bottom:6px;font-size:12px;color:var(--color-text-secondary)}
  .trend-legend b{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}
  .trend-legend .lc{background:var(--chart-1)}
  .trend-legend .ld{background:var(--chart-2)}
  /* 月度目标半环（对照参考图：更满的半环、渐变描边、中心层级） */
  .goal-wrap{display:flex;flex-direction:column;align-items:center;width:100%;gap:10px;padding:0}
  .goal-gauge{position:relative;width:88%;max-width:420px;aspect-ratio:100 / 56;margin:0 auto}
  .goal-gauge svg{width:100%;height:100%;display:block;overflow:visible}
  .goal-gauge .center{
    position:absolute;left:50%;top:auto;bottom:14.5%;transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:max-content;
  }
  .goal-gauge .pct{font-size:35px;font-weight:700;tabular-nums;letter-spacing:-.03em;line-height:1;color:var(--color-text-primary)}
  .goal-gauge .goal-badge{
    display:inline-flex;align-items:center;justify-content:center;
    height:22px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;
    background:#ecfdf3;color:#039855;line-height:1;
  }
  .goal-note{margin:0;max-width:20rem;text-align:center;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}
  /* 下排：分布 + 状态 */
  .sales-wb-bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
  .country-bars{display:grid;gap:16px}
  .country-bar{display:grid;grid-template-columns:40px minmax(96px,132px) minmax(0,1fr) auto;gap:12px;align-items:center}
  .country-bar .flag{
    width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--color-surface-alt);
    border:1px solid var(--color-border);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
  }
  .country-bar .meta{min-width:0;display:grid;gap:4px}
  .country-bar .meta .name{font-size:15px;font-weight:600;color:var(--color-text-primary);line-height:1.2}
  .country-bar .meta .sub{font-size:13px;color:var(--color-text-secondary);line-height:1.2}
  .country-bar .track{height:6px;border-radius:999px;background:#eef1f6;overflow:hidden}
  .country-bar .track i{display:block;height:100%;border-radius:999px;background:var(--chart-1)}
  .country-bar .n{tabular-nums;color:var(--color-text-secondary);font-size:14px;font-weight:500;min-width:3.2em;text-align:right}
  .status-list{display:flex;flex-direction:column;justify-content:flex-start;gap:2px;min-height:240px}
  .status-row{display:flex;align-items:center;gap:14px;padding:10px 6px;border:0;border-radius:12px;cursor:pointer;background:transparent;width:100%;text-align:left}
  .status-row:hover{background:var(--color-surface-alt)}
  .status-row .av{width:44px;height:44px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0;overflow:hidden}
  .status-row .av img{width:100%;height:100%;object-fit:cover}
  .status-row .meta{flex:1;min-width:0;display:grid;gap:4px}
  .status-row .meta strong{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
  .status-row .meta span{display:block;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
  .status-row .st{flex-shrink:0;font-size:14px;font-weight:500;color:var(--color-text-primary)}
  .handoff-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
  .handoff-tabs button{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--color-text-secondary)}
  .handoff-tabs button.active{background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary);font-weight:600}
  .sla-hot{color:var(--color-danger);font-weight:700;font-variant-numeric:tabular-nums}
  .wait-elapsed{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;
    background:#f2f4f7;color:var(--color-text-secondary);
  }
  .wait-elapsed.is-hot:not(.is-over){
    background:var(--color-warning-soft);color:var(--color-warning-text);font-weight:600;
  }
  .wait-elapsed.is-over{
    background:var(--color-danger-soft);color:var(--color-danger-text);font-weight:600;
  }
  .page.my-org-page{overflow:auto;display:flex;flex-direction:column;gap:12px;padding-top:16px}
  .page.my-org-page > .page-head{margin-bottom:4px}
  .my-org-board.crm-board .table-wrap{flex:1 1 auto;min-height:280px}
  .my-org-toolbar{padding:12px 14px}
  .my-org-summary{padding:16px 16px 4px;margin-bottom:0}
  .my-org-number{font-variant-numeric:tabular-nums}
  .my-org-stats-table th,.my-org-stats-table td{width:auto;max-width:none}
  .my-org-stats-table th:nth-child(1),.my-org-stats-table td:nth-child(1){width:240px;max-width:240px}
  .my-org-stats-table th:nth-child(2),.my-org-stats-table td:nth-child(2){width:112px}
  .my-org-stats-table th:nth-child(3),.my-org-stats-table td:nth-child(3){width:112px}
  .my-org-stats-table th:nth-child(4),.my-org-stats-table td:nth-child(4){width:96px}
  .my-org-stats-table th:nth-child(5),.my-org-stats-table td:nth-child(5){width:96px}
  .my-org-stats-table th:nth-child(6),.my-org-stats-table td:nth-child(6){width:90px}
  .my-org-stats-table th:nth-child(7),.my-org-stats-table td:nth-child(7){width:90px}
  .my-org-stats-table th:last-child,.my-org-stats-table td:last-child{position:static;right:auto;z-index:auto;background:#fff;box-shadow:none;width:90px;white-space:normal}
  .msg-notif-page{overflow:hidden;display:flex;flex-direction:column;min-height:0}
  .msg-notif-board{
    flex:1 1 0;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr);
    background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);
    box-shadow:var(--shadow-sm);overflow:hidden;
  }
  .msg-notif-side{padding:12px 10px;border-right:1px solid var(--color-border);background:#fff;overflow:auto}
  .msg-notif-side-item{
    display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
    border:0;background:transparent;border-radius:10px;padding:11px 12px;cursor:pointer;
    color:var(--color-text-secondary);font-size:14px;text-align:left;
  }
  .msg-notif-side-item:hover{background:#f8fafc;color:var(--color-text-primary)}
  .msg-notif-side-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}
  .msg-notif-side-item .count{font-variant-numeric:tabular-nums;opacity:.85}
  .msg-notif-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}
  .msg-notif-head{
    flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:16px 20px;border-bottom:1px solid var(--color-border);
  }
  .msg-notif-head h2{margin:0;font-size:18px;font-weight:600}
  .msg-notif-read-all{
    height:32px;padding:0 14px;border:0;border-radius:6px;cursor:pointer;
    background:#3b82f6;color:#fff;font-size:13px;font-weight:500;line-height:1;
  }
  .msg-notif-read-all:hover{background:#2563eb}
  .msg-notif-list{flex:1 1 0;min-height:0;overflow:auto;padding:0 8px}
  .msg-notif-row{
    display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:flex-start;
    padding:16px 12px;border-bottom:1px solid var(--color-border);
  }
  .msg-notif-row.is-unread{cursor:pointer}
  .msg-notif-row.is-unread:hover{background:#f8fafc}
  .msg-notif-row:last-child{border-bottom:0}
  .msg-notif-dot{width:8px;height:8px;border-radius:50%;background:transparent;margin-top:7px}
  .msg-notif-row.is-unread .msg-notif-dot{background:#3b82f6}
  .msg-notif-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .msg-notif-title-row strong{font-size:15px;font-weight:600;color:var(--color-text-primary)}
  .msg-notif-title-row .when{font-size:12px;color:var(--color-text-tertiary)}
  .msg-notif-body{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--color-text-secondary)}
  .msg-notif-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-top:2px}
  .msg-notif-actions .del-btn{
    border:0;background:transparent;cursor:pointer;font-size:13px;padding:0;line-height:1.2;color:var(--color-danger);
  }
  .msg-notif-foot{
    flex:none;display:flex;align-items:center;justify-content:flex-end;gap:12px;
    padding:12px 16px;border-top:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);
  }
  .msg-notif-pager{display:inline-flex;align-items:center;gap:6px}
  .msg-notif-pager button{
    min-width:28px;height:28px;border:1px solid var(--color-border);border-radius:6px;
    background:#fff;cursor:pointer;color:var(--color-text-secondary);
  }
  .msg-notif-pager button.active{border-color:var(--color-primary);color:var(--color-primary)}
  .msg-notif-pager button:disabled{opacity:.45;cursor:not-allowed}
  @media(max-width:900px){
    .msg-notif-board{grid-template-columns:1fr}
    .msg-notif-side{display:flex;flex-wrap:wrap;gap:6px;border-right:0;border-bottom:1px solid var(--color-border)}
    .msg-notif-side-item{width:auto;flex:1 1 auto}
  }
  .page.handoff-page,.page.wakeup-page{overflow:visible;padding-top:16px}
  .page.handoff-page > .page-head,.page.wakeup-page > .page-head{flex:none;margin-bottom:12px}
  .page-head-actions-only{margin-bottom:12px;min-height:0}
  .handoff-board{
    flex:1 1 0;min-height:0;height:100%;
    display:grid;grid-template-columns:200px minmax(0,1fr);
    background:var(--color-surface);border:1px solid var(--color-border);
    border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:visible;
  }
  .handoff-side{
    padding:12px 10px;border-right:1px solid var(--color-border);
    min-height:0;overflow:auto;background:var(--color-surface);
  }
  .handoff-side-item{
    display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
    border:0;background:transparent;border-radius:10px;padding:11px 12px;cursor:pointer;
    color:var(--color-text-secondary);font-size:13px;text-align:left;
  }
  .handoff-side-item:hover{background:#f8fafc;color:var(--color-text-primary)}
  .handoff-side-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}
  .handoff-side-item .count{font-variant-numeric:tabular-nums;color:inherit;opacity:.85}
  .handoff-main{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;background:#fff}
  .handoff-toolbar{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none;
    padding:16px 18px 12px;border-bottom:1px solid var(--color-border);
    position:relative;z-index:6;overflow:visible;
  }
  .handoff-toolbar .searchbox{flex:1;min-width:220px;width:auto;max-width:none;position:relative}
  .handoff-toolbar .searchbox input{
    width:100%;height:38px;padding-left:36px;border-radius:10px;
    border:1px solid var(--color-border);background:#fff;
  }
  .handoff-toolbar .filter-btn{
    display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;
    border:1px solid var(--color-border);border-radius:10px;background:#fff;
    color:var(--color-text-secondary);font-size:13px;cursor:pointer;white-space:nowrap;
  }
  .handoff-toolbar .filter-btn.is-active,.handoff-toolbar .filter-btn.has-rules{
    border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft);
  }
  .handoff-toolbar .filter-btn .filter-count{
    min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-primary);
    color:#fff;font-size:11px;line-height:18px;text-align:center;font-variant-numeric:tabular-nums;
  }
  .adv-filter-wrap{position:relative;flex:none;z-index:20}
  .adv-filter-panel{
    position:absolute;left:0;top:calc(100% + 8px);width:min(760px,calc(100vw - 48px));
    background:#fff;border:1px solid var(--color-border);border-radius:12px;
    box-shadow:var(--shadow-lg);padding:14px 16px 12px;z-index:30;
  }
  .adv-filter-panel:before{
    content:"";position:absolute;left:22px;top:-6px;width:12px;height:12px;background:#fff;
    border-left:1px solid var(--color-border);border-top:1px solid var(--color-border);
    transform:rotate(45deg);
  }
  .adv-filter-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;position:relative;z-index:1}
  .adv-filter-head strong{font-size:15px;font-weight:600}
  .adv-filter-head .adv-match{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:var(--color-text-secondary)}
  .adv-filter-head .adv-match .select{width:auto;min-width:88px;height:32px}
  .adv-filter-presets{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-2px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}
  .adv-filter-clear{
    border:0;background:transparent;color:var(--color-text-tertiary);font-size:13px;cursor:pointer;padding:4px 2px;
  }
  .adv-filter-clear:disabled{opacity:.45;cursor:not-allowed}
  .adv-filter-clear:not(:disabled){color:var(--color-text-secondary)}
  .adv-filter-clear:not(:disabled):hover{color:var(--color-primary)}
  .adv-filter-rows{display:grid;gap:10px}
  .adv-filter-row{display:grid;grid-template-columns:minmax(140px,1.1fr) 88px minmax(160px,1.4fr) auto auto;gap:8px;align-items:center}
  .adv-filter-row .select{width:100%;height:36px}
  .adv-filter-common{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;user-select:none}
  .adv-filter-common input{accent-color:var(--color-primary)}
  .adv-filter-del{border:0;background:transparent;color:var(--color-danger);font-size:13px;cursor:pointer;padding:4px 2px;white-space:nowrap}
  .adv-filter-del:hover{opacity:.85}
  .adv-filter-foot{margin-top:12px}
  .adv-filter-add{
    display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;
    color:var(--color-primary);font-size:13px;cursor:pointer;padding:4px 0;font-weight:500;
  }
  .adv-filter-add:hover{opacity:.85}
  @media(max-width:900px){
    .adv-filter-row{grid-template-columns:1fr 1fr; }
    .adv-filter-row .select:nth-child(3){grid-column:1 / -1}
  }
  .notif-wrap{position:relative}
  .notif-panel{
    position:absolute;right:0;top:calc(100% + 8px);width:380px;max-height:440px;overflow:auto;
    background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:50;padding:8px
  }
  .notif-item{padding:10px 12px;border-radius:10px;font-size:13px}
  .notif-item + .notif-item{border-top:1px solid var(--color-border)}
  .notif-item strong{display:block;margin-bottom:2px}
  .notif-item span{color:var(--color-text-secondary);font-size:12px}
  .notif-card{padding:10px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-alt);margin-bottom:8px}
  .notif-card:last-child{margin-bottom:0}
  .notif-card-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
  .notif-card-hd strong{font-size:13px;font-weight:600}
  .notif-card-hd .t{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}
  .notif-fields{width:100%;border-collapse:collapse;font-size:12px}
  .notif-fields th,.notif-fields td{padding:5px 0;vertical-align:top;border-bottom:1px dashed var(--color-border)}
  .notif-fields tr:last-child th,.notif-fields tr:last-child td{border-bottom:0}
  .notif-fields th{width:64px;text-align:left;font-weight:500;color:var(--color-text-secondary)}
  .notif-fields td{color:var(--color-text-primary);font-weight:500}
  .notif-center-list{display:grid;gap:10px}
  .dashboard-stack{display:grid;gap:var(--space-5)}
  .dashboard-sales-card>.card-head{align-items:flex-start}
  .dashboard-sales-heading{min-width:0}
  .dashboard-sales-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .dashboard-sales-title-row .badge{flex:none}
  .dashboard-sales-card .table-wrap{max-height:360px;overflow:auto}
  .dashboard-sales-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px}
  .icon-btn.has-dot .dot{display:block}
  .wakeup-board{display:flex;flex-direction:column;gap:12px;min-height:360px}
  .wakeup-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:6px;font-size:12px;color:var(--color-text-secondary)}
  .wakeup-actions{display:inline-flex;gap:10px;flex-wrap:wrap;margin-top:8px}
  .wakeup-config-page{overflow:auto;padding-top:16px}
  .wakeup-config-shell{display:grid;gap:14px;padding-bottom:24px}
  .wakeup-config-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);background:#fff;border-radius:8px}
  .wakeup-config-banner h2{margin:4px 0 6px;font-size:18px;letter-spacing:0}
  .wakeup-config-banner p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.55}
  .wakeup-config-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
  .wakeup-config-meta div{display:grid;gap:2px}
  .wakeup-config-meta span{font-size:11px;color:var(--color-text-tertiary)}
  .wakeup-config-meta strong{font-size:13px}
  .wakeup-config-kpis{display:grid;grid-template-columns:repeat(3,88px);gap:8px}
  .wakeup-config-kpis div{padding:10px;border:1px solid var(--color-border);background:var(--color-surface-sunken);border-radius:6px;text-align:center}
  .wakeup-config-kpis strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}
  .wakeup-config-kpis span{display:block;margin-top:2px;font-size:11px;color:var(--color-text-tertiary)}
  .wakeup-config-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:14px;align-items:start}
  .wakeup-config-section{border:1px solid var(--color-border);background:#fff;border-radius:8px;overflow:hidden}
  .wakeup-config-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--color-border)}
  .wakeup-config-section-head h3{margin:0;font-size:15px;letter-spacing:0}
  .wakeup-config-section-head p{margin:4px 0 0;font-size:12px;color:var(--color-text-secondary);line-height:1.5}
  .wakeup-config-section-body{padding:16px 18px}
  .wakeup-simple-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);background:linear-gradient(135deg,#fff 0%,#f7f9ff 100%);border-radius:10px}
  .wakeup-simple-intro h2{margin:4px 0 6px;font-size:21px;letter-spacing:-.02em}
  .wakeup-simple-intro p{max-width:720px;margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.65}
  .wakeup-simple-status{display:grid;justify-items:end;gap:7px;white-space:nowrap}
  .wakeup-simple-status>span:last-child{font-size:12px;color:var(--color-text-tertiary)}
  .wakeup-simple-section .wakeup-config-section-head{align-items:center}
  .wakeup-simple-mode{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-sunken)}
  .wakeup-simple-mode span,.wakeup-simple-trigger span,.wakeup-cadence-item>span:nth-child(2),.wakeup-advanced-settings summary span:first-child{display:grid;gap:3px}
  .wakeup-simple-mode small,.wakeup-simple-trigger small,.wakeup-cadence-item small,.wakeup-advanced-settings summary small{color:var(--color-text-secondary);font-size:12px;line-height:1.45}
  .wakeup-simple-trigger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .wakeup-simple-trigger{display:flex;align-items:center;gap:11px;min-height:64px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:#fff;cursor:pointer}
  .wakeup-simple-trigger:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft,#f3f6ff)}
  .wakeup-simple-trigger input{width:17px;height:17px;accent-color:var(--color-primary);flex:0 0 auto}
  .wakeup-cadence-list{display:grid;gap:9px}
  .wakeup-cadence-item{display:grid;grid-template-columns:28px minmax(0,1fr) 140px;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--color-border);border-radius:8px;background:#fff}
  .wakeup-cadence-index{width:26px;height:26px;display:grid!important;place-items:center;background:var(--color-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700}
  .wakeup-cadence-item .input{height:34px}
  .wakeup-advanced-settings{border:1px solid var(--color-border);background:#fff;border-radius:8px;overflow:hidden}
  .wakeup-advanced-settings summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;cursor:pointer;list-style:none}
  .wakeup-advanced-settings summary::-webkit-details-marker{display:none}
  .wakeup-advanced-settings summary:after{content:"＋";font-size:18px;color:var(--color-text-tertiary)}
  .wakeup-advanced-settings[open] summary:after{content:"－"}
  .wakeup-advanced-body{padding:0 18px 16px;border-top:1px solid var(--color-border)}
  .wakeup-simple-preview{overflow:hidden}
  .wakeup-preview-placeholder{padding:15px 18px;color:var(--color-text-secondary);font-size:13px;line-height:1.65}
  .wakeup-rule-summary{border:1px solid var(--color-border);background:#fff;border-radius:8px;overflow:hidden}
  .wakeup-rule-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--color-border)}
  .wakeup-rule-summary-head h3{margin:0;font-size:15px}
  .wakeup-rule-summary-head p{margin:4px 0 0;color:var(--color-text-secondary);font-size:12px}
  .wakeup-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 18px}
  .wakeup-rule-grid article{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-sunken)}
  .wakeup-rule-number{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:700}
  .wakeup-rule-grid strong{font-size:13px}
  .wakeup-rule-grid p{margin:4px 0 7px;color:var(--color-text-secondary);font-size:12px;line-height:1.55}
  .wakeup-rule-grid span:last-child{color:var(--color-success-text);font-size:11px}
  .wakeup-rule-detail{display:grid;gap:5px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--color-border)}
  .wakeup-rule-detail span{display:grid!important;grid-template-columns:42px minmax(0,1fr);gap:5px;color:var(--color-text-secondary)!important;font-size:11px!important;line-height:1.45}
  .wakeup-rule-detail b{font-weight:600;color:var(--color-text-tertiary)}
  .wakeup-decision{display:grid;gap:5px;margin-top:12px;padding:11px 12px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface-sunken)}
  .wakeup-decision-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .wakeup-decision-head strong{font-size:12px}
  .wakeup-decision p{margin:0;color:var(--color-text-secondary);font-size:11px;line-height:1.5}
  .wakeup-decision.is-blocked{border-color:#f2c2c0;background:#fff8f7}
  .wakeup-decision.is-ready{border-color:#b7dfc5;background:#f5fcf7}
  @media(max-width:900px){
    .wakeup-simple-intro{display:grid}
    .wakeup-simple-status{justify-items:start}
    .wakeup-simple-trigger-grid{grid-template-columns:1fr}
    .wakeup-rule-grid{grid-template-columns:1fr}
    .wakeup-cadence-item{grid-template-columns:28px minmax(0,1fr)}
    .wakeup-cadence-item .input{grid-column:2}
  }
  .wakeup-master-row{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px;align-items:center}
  .wakeup-master-row h3{margin:0 0 4px;font-size:15px}
  .wakeup-master-row p{margin:0;font-size:12px;color:var(--color-text-secondary);line-height:1.5}
  .wakeup-switch{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;cursor:pointer}
  .wakeup-switch input{width:36px;height:20px;accent-color:var(--color-primary)}
  .wakeup-trigger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .wakeup-trigger{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--color-border);border-radius:6px;background:#fff}
  .wakeup-trigger strong{display:block;font-size:13px}
  .wakeup-trigger span{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:11px;line-height:1.45}
  .wakeup-trigger input{width:32px;height:18px;accent-color:var(--color-primary)}
  .wakeup-plan-list{display:grid;gap:10px}
  .wakeup-plan{border:1px solid var(--color-border);border-radius:6px;background:#fff}
  .wakeup-plan summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;cursor:pointer;list-style:none}
  .wakeup-plan summary::-webkit-details-marker{display:none}
  .wakeup-plan summary strong{display:block;font-size:13px}
  .wakeup-plan summary span{display:block;margin-top:3px;font-size:11px;color:var(--color-text-tertiary)}
  .wakeup-plan-body{padding:0 14px 14px;border-top:1px solid var(--color-border)}
  .wakeup-plan-step{display:grid;grid-template-columns:92px minmax(0,1fr) 118px;gap:10px;align-items:end;padding-top:12px}
  .wakeup-plan-step .field{gap:5px}
  .wakeup-plan-step .field span{font-size:11px}
  .wakeup-plan-step .input,.wakeup-plan-step .select{height:34px;font-size:12px}
  .wakeup-policy-list{display:grid;gap:9px}
  .wakeup-policy-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border)}
  .wakeup-policy-row:last-child{border-bottom:0}
  .wakeup-policy-row div{min-width:0}
  .wakeup-policy-row strong{display:block;font-size:13px}
  .wakeup-policy-row span{display:block;margin-top:2px;font-size:11px;color:var(--color-text-tertiary)}
  .wakeup-test-customer{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-sunken)}
  .wakeup-test-result{margin-top:12px;padding:13px;border-left:3px solid var(--color-primary);background:var(--color-primary-soft);font-size:12px;line-height:1.6}
  .wakeup-send-modal{position:fixed;left:50%;top:50%;z-index:121;width:min(920px,calc(100vw - 48px));max-height:calc(100vh - 48px);transform:translate(-50%,-50%);display:flex;flex-direction:column;border:1px solid #dfe4ee;border-radius:16px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.24);overflow:hidden}
  .wakeup-send-head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--color-border);background:#fff}
  .wakeup-send-customer{display:flex;align-items:center;gap:11px;min-width:0}
  .wakeup-send-customer .handoff-av{width:42px;height:42px}
  .wakeup-send-customer strong{display:block;font-size:15px}
  .wakeup-send-customer span{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:11px}
  .wakeup-send-time{margin-left:auto;padding:7px 10px;border-radius:8px;background:var(--color-surface-sunken);text-align:right}
  .wakeup-send-time span{display:block;color:var(--color-text-tertiary);font-size:9px}
  .wakeup-send-time strong{display:block;margin-top:2px;font-size:11px}
  .wakeup-send-body{min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.72fr);gap:0}
  .wakeup-send-compose{padding:20px;border-right:1px solid var(--color-border)}
  .wakeup-send-compose-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
  .wakeup-send-compose-head h2{margin:3px 0 0;font-size:18px}
  .wakeup-send-compose-head p{margin:5px 0 0;color:var(--color-text-secondary);font-size:11px}
  .wakeup-send-reason{margin-top:14px;padding:11px 12px;border-left:3px solid var(--color-primary);border-radius:7px;background:#f7f9ff}
  .wakeup-send-reason span{display:block;color:var(--color-primary);font-size:9px;font-weight:600;letter-spacing:.06em}
  .wakeup-send-reason strong{display:block;margin-top:3px;font-size:12px;line-height:1.5}
  .wakeup-ai-message{margin-top:16px}
  .wakeup-tone-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
  .wakeup-tone-option{display:grid;gap:2px;flex:1;min-width:116px;padding:9px 10px;border:1px solid var(--color-border);border-radius:8px;background:#fff;text-align:left;cursor:pointer}
  .wakeup-tone-option strong{font-size:11px}
  .wakeup-tone-option span{font-size:9px;color:var(--color-text-tertiary)}
  .wakeup-tone-option.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}
  .wakeup-ai-message textarea{width:100%;min-height:178px;margin-top:12px;padding:13px;border:1px solid var(--color-border);border-radius:10px;background:#fbfcfe;resize:vertical;font:inherit;font-size:13px;line-height:1.7;color:var(--color-text-primary);outline:none}
  .wakeup-ai-message textarea:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);background:#fff}
  .wakeup-generation-basis{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;color:var(--color-text-tertiary);font-size:10px}
  .wakeup-generation-basis span{padding:4px 7px;border-radius:999px;background:var(--color-surface-sunken)}
  .wakeup-send-review{padding:20px;background:#fbfcfe}
  .wakeup-send-review-section+.wakeup-send-review-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--color-border)}
  .wakeup-send-review-section>span{display:block;color:var(--color-text-tertiary);font-size:10px}
  .wakeup-send-review-section>strong,.wakeup-send-review-section>p{display:block;margin-top:5px;font-size:12px;line-height:1.6}
  .wakeup-send-latest{margin-top:8px;padding:10px;border-radius:8px;background:#fff;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:11px;line-height:1.55}
  .wakeup-checks{display:grid;gap:8px}
  .wakeup-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary)}
  .wakeup-check i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--color-success-soft);color:var(--color-success-text);font-style:normal;font-weight:700}
  .wakeup-check.is-blocked{color:var(--color-danger-text,#b42318)}
  .wakeup-check.is-blocked i{background:var(--color-danger-soft,#fee4e2);color:var(--color-danger-text,#b42318)}
  .wakeup-send-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border);background:#fff}
  .wakeup-send-foot span{color:var(--color-text-tertiary);font-size:10px}
  .wakeup-send-foot-actions{display:flex;gap:10px}
  @media(max-width:760px){
    .wakeup-send-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
    .wakeup-send-head{padding:14px}
    .wakeup-send-time{display:none}
    .wakeup-send-body{grid-template-columns:1fr}
    .wakeup-send-compose{padding:16px;border-right:0}
    .wakeup-send-review{padding:16px;border-top:1px solid var(--color-border)}
    .wakeup-send-foot{align-items:stretch;flex-direction:column}
    .wakeup-send-foot-actions{display:grid;grid-template-columns:1fr 1fr}
  }
  .wakeup-source{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--color-text-tertiary);margin-top:4px}
  .wakeup-source:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-primary)}
  .wakeup-reason{font-size:12px;color:var(--color-text-secondary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .handoff-main .table-wrap{flex:1 1 0;min-height:0;overflow:auto;padding:0 8px}
  .handoff-table{width:100%;border-collapse:collapse;table-layout:fixed}
  .handoff-table th{
    padding:14px 16px;font-size:13px;font-weight:500;color:var(--color-text-tertiary);
    text-align:left;border-bottom:1px solid var(--color-border);background:#fff;
    position:sticky;top:0;z-index:1;
  }
  .handoff-table td{
    padding:16px;font-size:14px;color:var(--color-text-primary);
    border-bottom:1px solid var(--color-border);vertical-align:middle;
  }
  .handoff-table tbody tr:last-child td{border-bottom:0}
  .handoff-table tbody tr:hover td{background:#fafbfd}
  .handoff-table th:nth-child(1),.handoff-table td:nth-child(1){width:132px}
  .handoff-table th:nth-child(2),.handoff-table td:nth-child(2){width:168px;max-width:168px}
  .handoff-table th:nth-child(3),.handoff-table td:nth-child(3){width:100px}
  .handoff-table th:nth-child(4),.handoff-table td:nth-child(4){width:110px}
  .handoff-table th:nth-child(5),.handoff-table td:nth-child(5){width:120px}
  .handoff-table th:nth-child(6),.handoff-table td:nth-child(6){width:110px}
  .handoff-table th:nth-child(7),.handoff-table td:nth-child(7){width:140px}
  .handoff-table th:nth-child(8),.handoff-table td:nth-child(8){width:140px}
  .handoff-table th:last-child,.handoff-table td:last-child{
    position:sticky;right:0;z-index:2;background:#fff;
    box-shadow:-6px 0 8px -6px rgba(15,23,42,.12);white-space:nowrap;width:160px;
  }
  .handoff-table th:last-child{z-index:3;top:0}
  .handoff-table tbody tr:hover td:last-child{background:#fafbfd}
  .handoff-task-table{min-width:1158px}
  .handoff-task-table th:nth-child(1),.handoff-task-table td:nth-child(1){width:132px}
  .handoff-task-table th:nth-child(2),.handoff-task-table td:nth-child(2){width:168px;max-width:168px}
  .handoff-task-table th:nth-child(3),.handoff-task-table td:nth-child(3){width:100px}
  .handoff-task-table th:nth-child(4),.handoff-task-table td:nth-child(4){width:110px}
  .handoff-task-table th:nth-child(5),.handoff-task-table td:nth-child(5){width:120px}
  .handoff-task-table th:nth-child(6),.handoff-task-table td:nth-child(6){width:108px}
  .handoff-task-table th:nth-child(7),.handoff-task-table td:nth-child(7){width:120px}
  .handoff-task-table th:nth-child(8),.handoff-task-table td:nth-child(8){width:140px}
  .handoff-task-table th:nth-child(9),.handoff-task-table td:nth-child(9){width:160px}
  .handoff-table.dashboard-sales-table{min-width:760px;table-layout:fixed}
  .dashboard-sales-table th,.dashboard-sales-table td{width:auto;max-width:none;padding:12px 20px}
  .dashboard-sales-table th:nth-child(1),.dashboard-sales-table td:nth-child(1){width:34%;max-width:none;text-align:left}
  .dashboard-sales-table th:nth-child(2),.dashboard-sales-table td:nth-child(2),
  .dashboard-sales-table th:nth-child(3),.dashboard-sales-table td:nth-child(3),
  .dashboard-sales-table th:nth-child(4),.dashboard-sales-table td:nth-child(4),
  .dashboard-sales-table th:nth-child(5),.dashboard-sales-table td:nth-child(5){width:16.5%;text-align:right}
  .dashboard-sales-table th:last-child,.dashboard-sales-table td:last-child{position:static;right:auto;z-index:auto;background:#fff;box-shadow:none;white-space:normal}
  .dashboard-sales-table .handoff-user{gap:10px}
  .dashboard-sales-table .handoff-av{width:36px;height:36px}
  .dashboard-sales-table .handoff-user-meta{display:grid;align-items:start;gap:2px;min-width:0;min-height:0}
  .dashboard-sales-table .handoff-user-meta strong,
  .dashboard-sales-table .handoff-user-meta span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dashboard-sales-value{font-weight:600;font-variant-numeric:tabular-nums}
  .dashboard-sales-rate-empty{display:inline-block;min-width:48px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;text-align:center}
  @media(max-width:620px){
    .dashboard-sales-foot{align-items:flex-start;flex-direction:column;gap:4px}
  }
  .wakeup-page{overflow:auto}
  .wakeup-page .page-head{margin-bottom:12px}
  .wakeup-task-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--color-border);background:#fff}
  .wakeup-filter-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .wakeup-filter-tab{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer}
  .wakeup-filter-tab:hover{background:var(--color-surface-sunken);color:var(--color-text-primary)}
  .wakeup-filter-tab.active{border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}
  .wakeup-filter-tab .count{min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:rgba(70,95,255,.1);font-size:10px;font-variant-numeric:tabular-nums}
  .wakeup-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
  .wakeup-completed-filter{
    display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:4px 8px 4px 12px;
    border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-alt);
    color:var(--color-text-secondary);font-size:12px;white-space:nowrap;
  }
  .wakeup-completed-filter > span:first-child{font-weight:500;color:var(--color-text-secondary)}
  .wakeup-completed-filter .range-separator{color:var(--color-text-tertiary);font-size:11px}
  .wakeup-completed-filter input{
    width:132px;height:30px;padding:0 8px;border:1px solid var(--color-border-strong);border-radius:7px;
    background:#fff;color:var(--color-text-primary);font-size:12px;font-variant-numeric:tabular-nums;
    transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
  }
  .wakeup-completed-filter input:hover{border-color:#b9c2d0}
  .wakeup-completed-filter input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}
  .wakeup-list-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;background:#fbfcfe;border-bottom:1px solid var(--color-border)}
  .wakeup-list-summary strong{font-size:13px}
  .wakeup-list-summary span{font-size:11px;color:var(--color-text-tertiary)}
  .wakeup-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--color-border);background:#fff}
  .wakeup-pagination-info{color:var(--color-text-tertiary);font-size:11px}
  .wakeup-pagination-buttons{display:flex;align-items:center;gap:6px}
  .wakeup-page-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:34px;height:32px;padding:0 10px;border:1px solid var(--color-border);border-radius:7px;background:#fff;color:var(--color-text-secondary);font-size:12px;cursor:pointer}
  .wakeup-page-btn:hover:not(:disabled){border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary)}
  .wakeup-page-btn:disabled{cursor:not-allowed;opacity:.45}
  .wakeup-page-number{min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer}
  .wakeup-page-number.active{border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}
  .wakeup-task-board{min-height:420px}
  .wakeup-task-board .table-wrap{flex:1 1 auto;min-height:280px;overflow:auto;padding:0 8px}
  .wakeup-task-table{min-width:1450px}
  .wakeup-task-table th:nth-child(1),.wakeup-task-table td:nth-child(1){width:190px;min-width:190px}
  .wakeup-task-table th:nth-child(2),.wakeup-task-table td:nth-child(2){width:150px;min-width:150px}
  .wakeup-task-table th:nth-child(3),.wakeup-task-table td:nth-child(3){width:150px;min-width:150px}
  .wakeup-task-table th:nth-child(4),.wakeup-task-table td:nth-child(4){width:340px;min-width:340px}
  .wakeup-task-table th:nth-child(5),.wakeup-task-table td:nth-child(5){width:145px;min-width:145px;white-space:nowrap}
  .wakeup-task-table th:nth-child(6),.wakeup-task-table td:nth-child(6){width:155px;min-width:155px;white-space:nowrap}
  .wakeup-task-table th:last-child,.wakeup-task-table td:last-child{width:320px;min-width:320px}
  .wakeup-task-table .task-customer-name,.wakeup-task-table .task-creator{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wakeup-task-table .task-customer-name{font-weight:600}
  .wakeup-task-table .task-creator{color:var(--color-text-secondary)}
  .wakeup-task-table .task-follow-up-content{display:-webkit-box;max-width:320px;overflow:hidden;color:var(--color-text-secondary);font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}
  .wakeup-task-table .task-time{font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}
  .wakeup-task-table .task-actions{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;white-space:nowrap}
  .wakeup-task-table .task-actions .btn,.wakeup-task-table .task-actions .table-action{flex:0 0 auto}
  .wakeup-task-table .task-actions .table-action{font-size:12px}
  .wakeup-task-table tbody tr[data-task-overdue="true"] td{background:#fffafa}
  .wakeup-task-table tbody tr[data-task-overdue="true"]:hover td{background:#fff6f5}
  .wakeup-empty{padding:54px 20px;text-align:center;color:var(--color-text-tertiary);font-size:13px}
  @media(max-width:760px){
    .wakeup-task-toolbar{align-items:stretch;flex-direction:column}
    .wakeup-toolbar-right{justify-content:flex-start;flex-wrap:wrap;min-width:0;width:100%}
    .wakeup-completed-filter{flex:1 1 100%;width:100%;justify-content:space-between}
    .wakeup-completed-filter input{width:auto;min-width:0;flex:1 1 0}
    .wakeup-list-summary{align-items:flex-start;flex-direction:column}
  }
  .handoff-code{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-size:13px}
  .handoff-user{display:flex;align-items:center;gap:12px;min-width:0}
  .handoff-av{
    width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;
    background:var(--color-primary-soft);color:var(--color-primary);font-size:13px;font-weight:700;
    overflow:hidden;
  }
  .handoff-av img{width:100%;height:100%;object-fit:cover}
  .handoff-user-meta{min-width:0}
  .handoff-user-meta strong{display:block;font-size:14px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .handoff-user-meta span{display:block;margin-top:2px;font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .handoff-stage{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    font-size:12px;font-weight:500;background:#f2f4f7;color:var(--color-text-secondary);
  }
  .handoff-stage.is-pending{background:var(--color-warning-soft);color:var(--color-warning-text)}
  .handoff-stage.is-claimed{background:var(--color-success-soft);color:var(--color-success-text)}
  .handoff-stage.is-overdue{background:var(--color-danger-soft);color:var(--color-danger-text)}
  .page.customer-info-page{overflow:auto;display:flex;flex-direction:column;gap:12px}
  .page.customer-info-page > .page-head{margin-bottom:4px}
  .crm-board{
    background:var(--color-surface);border:1px solid var(--color-border);
    border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:visible;
    display:flex;flex-direction:column;min-height:420px;
  }
  .crm-section-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--color-border);background:#fff}
  .crm-section-tab{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 13px;border:1px solid var(--color-border);border-radius:999px;background:#fff;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer}
  .crm-section-tab:hover{border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary)}
  .crm-section-tab.active{border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary);box-shadow:0 0 0 3px rgba(70,95,255,.10)}
  .crm-section-tab b{min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#eef2ff;color:var(--color-primary);font-size:11px;line-height:18px;text-align:center}
  .crm-board .handoff-toolbar{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:12px;align-items:flex-end}
  .crm-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
  .crm-filters .field{gap:4px;min-width:132px}
  .crm-filters .field .label{font-size:12px}
  .crm-filters .select{width:auto;min-width:132px;height:36px}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .crm-detail-page{display:grid;gap:14px}
  .crm-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .crm-board .table-wrap{flex:1 1 auto;min-height:280px;overflow:auto;padding:0 8px}
  .crm-table th:nth-child(1),.crm-table td:nth-child(1){width:132px}
  .crm-table th:nth-child(2),.crm-table td:nth-child(2){width:168px;max-width:168px}
  .crm-table th:nth-child(3),.crm-table td:nth-child(3){width:120px}
  .crm-table th:nth-child(4),.crm-table td:nth-child(4){width:120px}
  .crm-table th:nth-child(5),.crm-table td:nth-child(5){width:100px}
  .crm-table th:nth-child(6),.crm-table td:nth-child(6){width:140px;white-space:nowrap}
  .crm-table th:nth-child(7),.crm-table td:nth-child(7){width:140px;white-space:nowrap}
  .crm-board .handoff-table tbody tr{cursor:pointer}
  .crm-table .handoff-user{align-items:center}
  .crm-table .handoff-user-meta{display:flex;align-items:center;min-height:40px}
  .customer-info-page .crm-table .handoff-user-meta{flex-direction:column;align-items:flex-start;gap:3px}
  .crm-table .handoff-user-meta strong{line-height:1.25;margin:0}
  .crm-user-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
  .crm-table .crm-user-tag{display:inline-flex;align-items:center;margin:0;padding:2px 7px;border:1px solid var(--crm-tag-border);border-radius:999px;background:var(--crm-tag-bg);color:var(--crm-tag-text);font-size:11px;font-weight:500;line-height:1.5}
  .crm-user-tag-blue{--crm-tag-bg:#eff6ff;--crm-tag-text:#1d4ed8;--crm-tag-border:#bfdbfe}
  .crm-user-tag-green{--crm-tag-bg:#ecfdf5;--crm-tag-text:#047857;--crm-tag-border:#a7f3d0}
  .crm-user-tag-amber{--crm-tag-bg:#fffbeb;--crm-tag-text:#92400e;--crm-tag-border:#fde68a}
  .crm-user-tag-purple{--crm-tag-bg:#f5f3ff;--crm-tag-text:#6d28d9;--crm-tag-border:#ddd6fe}
  .crm-user-tag-rose{--crm-tag-bg:#fff1f2;--crm-tag-text:#be123c;--crm-tag-border:#fecdd3}
  .crm-user-tag-cyan{--crm-tag-bg:#ecfeff;--crm-tag-text:#0e7490;--crm-tag-border:#a5f3fc}
  .crm-table tbody tr:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--color-primary-soft)}
  .crm-table th:nth-child(1),.crm-table td:nth-child(1){width:190px;min-width:190px}.crm-table th:nth-child(2),.crm-table td:nth-child(2){width:150px;min-width:150px}.crm-table th:nth-child(3),.crm-table td:nth-child(3){width:190px;min-width:190px}.crm-table th:nth-child(4),.crm-table td:nth-child(4){width:145px;min-width:145px}.crm-table th:nth-child(5),.crm-table td:nth-child(5){width:145px;min-width:145px}.crm-table th:nth-child(6),.crm-table td:nth-child(6){width:145px;min-width:145px}.crm-table th:nth-child(7),.crm-table td:nth-child(7){width:220px;min-width:220px}.crm-table th:nth-child(8),.crm-table td:nth-child(8){width:108px;min-width:108px}
  .crm-table .crm-summary-cell{display:grid;gap:7px;min-width:220px}.crm-table .crm-summary-cell .metric-value{justify-content:flex-start;gap:10px}.crm-table .crm-summary-cell .metric-value b{font-size:12px}.crm-table .crm-summary-cell p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.crm-table .stage-owner-cell{display:grid;gap:6px;justify-items:start}.crm-table .stage-owner-cell .followup-hint{display:block;line-height:1.25;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-table .latest-message{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.5}
  .customer-analysis-report{background:#fff}.report-prose{max-width:920px}.report-lead{margin:0 0 18px;padding:14px 16px;border-left:3px solid var(--color-primary);background:#f7f9ff;color:var(--color-text-primary);font-size:14px;line-height:1.8}.report-section{padding:0 2px}.report-section+.report-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--color-border)}.report-section h4{margin:0 0 7px;font-size:13px;color:var(--color-text-primary)}.report-section p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.85}.report-section strong{color:var(--color-text-primary);font-weight:650}
  .crm-table th:nth-child(2),.crm-table td:nth-child(2){width:260px;min-width:260px}.crm-table th:nth-child(3),.crm-table td:nth-child(3){width:145px;min-width:145px}.crm-table th:nth-child(4),.crm-table td:nth-child(4){width:145px;min-width:145px}.crm-table th:nth-child(5),.crm-table td:nth-child(5){width:125px;min-width:125px}.crm-table th:nth-child(6),.crm-table td:nth-child(6){width:260px;min-width:260px}.crm-table th:nth-child(7),.crm-table td:nth-child(7){width:108px;min-width:108px}
  .customer-detail-tabs{display:flex;gap:22px;margin-top:24px;border-bottom:1px solid var(--color-border)}
  .customer-detail-tab{border:0;background:transparent;padding:10px 2px;margin-bottom:-1px;color:var(--color-text-secondary);font:inherit;font-size:13px;cursor:pointer;border-bottom:2px solid transparent}
  .customer-detail-tab:hover{color:var(--color-primary)}
  .customer-detail-tab.active{color:var(--color-primary);font-weight:600;border-bottom-color:var(--color-primary)}
  .customer-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px}
  .detail-section{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}
  .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
  .section-heading h3{margin:3px 0 0;font-size:16px;font-weight:650}
  .section-eyebrow{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);font-weight:700}
  .source-badge,.weight-note{font-size:11px;color:var(--color-text-tertiary);padding:4px 8px;border-radius:999px;background:var(--color-surface-alt);white-space:nowrap}
  .profile-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
  .profile-field{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}
  .profile-field span,.signal-grid span,.profile-summary-facts span{display:block;font-size:11px;color:var(--color-text-tertiary);margin-bottom:4px}
  .profile-field strong{font-size:13px;font-weight:600;word-break:break-word}
  .agent-screen .customer-side-profile-grid{grid-template-columns:1fr;gap:10px}
  .agent-screen .customer-side-profile-section .section-heading{margin-bottom:12px}
  .agent-screen .customer-side-profile-section,.agent-screen .customer-side-insight,.agent-screen .customer-side-card .customer-analysis-report{padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}
  .agent-screen .customer-side-card .section-heading{gap:8px;margin-bottom:12px}
  .agent-screen .customer-side-card .section-heading h3{font-size:14px}
  .agent-screen .customer-side-card .source-badge,.agent-screen .customer-side-card .weight-note{white-space:normal;text-align:right}
  .agent-screen .customer-side-scoreline{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.agent-screen .customer-side-scoreline strong{font-size:18px;color:var(--color-primary)}.agent-screen .customer-side-scoreline span{font-size:11px;color:var(--color-text-tertiary)}
  .agent-screen .customer-side-card .profile-analysis-layout{grid-template-columns:1fr;gap:12px}
  .agent-screen .customer-side-card .profile-radar-panel{min-height:220px}
  .agent-screen .customer-side-card .customer-radar{width:min(100%,240px)}
  .agent-screen .customer-side-card .readiness-hero{gap:12px;margin-bottom:12px}
  .agent-screen .customer-side-card .readiness-ring{width:70px;height:70px}.agent-screen .customer-side-card .readiness-ring strong{font-size:18px}
  .agent-screen .customer-side-card .signal-grid,.agent-screen .customer-side-card .profile-summary-facts,.agent-screen .customer-side-card .customer-dimension-grid{grid-template-columns:1fr;gap:8px}
  .agent-screen .customer-side-card .dimension-card{padding:10px}
  .agent-screen .customer-side-card .report-prose{max-width:none}
  .agent-screen .customer-side-card .report-lead{font-size:13px;line-height:1.7;margin-bottom:12px;padding:12px}
  .agent-screen .customer-side-card .report-section+.report-section{margin-top:12px;padding-top:12px}
  .agent-screen .customer-side-card .report-section p{font-size:12px;line-height:1.75}
  .agent-screen .customer-notes-card{display:grid;gap:12px}
  .agent-screen .customer-notes-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
  .agent-screen .customer-notes-head h3{margin:3px 0 0;font-size:14px}
  .agent-screen .customer-notes-edit{flex:0 0 auto}
  .agent-screen .customer-notes-summary{display:grid;gap:12px}
  .agent-screen .customer-notes-copy{margin:0;padding:12px 13px;border:1px solid var(--color-border);border-radius:10px;background:#fbfcfe;color:var(--color-text-primary);font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
  .agent-screen .customer-notes-copy.is-empty{color:var(--color-text-tertiary)}
  .agent-screen .customer-notes-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .agent-screen .customer-notes-meta>span:first-child{font-size:11px;color:var(--color-text-tertiary)}
  .agent-screen .customer-notes-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .agent-screen .customer-note-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:11px}
  .agent-screen .customer-notes-empty{font-size:11px;color:var(--color-text-tertiary)}
  .customer-notes-modal{width:min(560px,calc(100vw - 32px))}
  .customer-notes-form{gap:16px}
  .customer-notes-form textarea{min-height:132px;resize:vertical;line-height:1.7}
  .customer-notes-tag-block{display:grid;gap:8px}
  .customer-notes-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .customer-notes-tag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .customer-notes-tag-input{min-width:0}
  .customer-notes-modal-foot{margin:4px -24px -24px;padding:14px 24px}
  .task-success-state{text-align:center;padding:28px 28px 24px}
  .task-success-state h3{margin:14px 0 6px;font-size:20px}
  .task-success-state>p{margin:0 auto;color:var(--color-text-secondary);font-size:13px;line-height:1.65;max-width:360px}
  .task-success-icon{width:56px;height:56px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:#ecfdf3;color:#16a34a;border:1px solid #bbf7d0}
  .task-success-icon.is-ai{background:#eef2ff;color:var(--color-primary);border-color:#cfd7ff}
  .task-success-meta{display:grid;gap:8px;margin-top:20px;text-align:left}
  .task-success-meta>div{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--color-border);border-radius:9px;background:#fbfcfe}
  .task-success-meta span{font-size:11px;color:var(--color-text-tertiary)}
  .task-success-meta strong{max-width:260px;text-align:right;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
  .task-success-foot{justify-content:space-between}
  @media(max-width:520px){.customer-notes-tag-grid{grid-template-columns:1fr}.customer-notes-modal-foot{margin:4px -16px -16px;padding:12px 16px}.task-success-foot{align-items:stretch;flex-direction:column}.task-success-foot .btn{width:100%}}
  .summary-copy{margin:0;color:var(--color-text-primary);line-height:1.75;font-size:14px}
  .signal-grid,.profile-summary-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
  .signal-grid>div,.profile-summary-facts>div{padding:11px 12px;border-radius:var(--radius-md);background:var(--color-surface-alt);border:1px solid var(--color-border)}
  .signal-grid strong,.profile-summary-facts strong{display:block;font-size:12px;line-height:1.55;font-weight:600}
  .profile-analysis-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:18px;align-items:center}
  .profile-radar-panel{display:grid;place-items:center;min-height:260px;background:linear-gradient(145deg,#f8fbff,#fff);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
  .customer-radar{width:min(100%,320px);height:auto}.customer-radar .radar-grid{fill:none;stroke:#dbe4f0;stroke-width:1}.customer-radar line{stroke:#dbe4f0;stroke-width:1}.customer-radar text{fill:var(--color-text-tertiary);font-size:10px}.customer-radar .radar-area{fill:rgba(70,95,255,.18);stroke:var(--color-primary);stroke-width:2}
  .readiness-hero{display:flex;align-items:center;gap:16px;margin-bottom:16px}.readiness-ring{--readiness:0;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--color-primary) calc(var(--readiness) * 1%),#e8edf5 0);position:relative;flex:none}.readiness-ring:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.readiness-ring>div{position:relative;z-index:1;text-align:center}.readiness-ring strong{display:block;font-size:22px;line-height:1}.readiness-ring span{font-size:10px;color:var(--color-text-tertiary)}
  .profile-summary-panel h3{margin:2px 0 3px;font-size:18px}.profile-summary-panel p{font-size:12px;color:var(--color-text-secondary);line-height:1.6;margin:0}
  .customer-dimension-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.dimension-card{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}.dimension-card strong{font-size:12px}.dimension-card b{font-size:13px;color:var(--color-primary)}.dimension-card p{font-size:11px;line-height:1.5;color:var(--color-text-secondary);margin:8px 0 0}.dimension-card .progress{height:5px;background:#e7edf5;border-radius:999px;overflow:hidden;margin-top:10px}.dimension-card .progress i{display:block;height:100%;background:linear-gradient(90deg,var(--color-primary),#8b5cf6);border-radius:999px}
  .crm-insight-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-border);background:#fbfcfe}
  .crm-insight-card{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.crm-insight-card span{display:block;font-size:11px;color:var(--color-text-tertiary);margin-bottom:4px}.crm-insight-card strong{font-size:18px;line-height:1.1}.crm-insight-card small{display:block;margin-top:4px;color:var(--color-text-secondary);font-size:11px}
  .crm-pool-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--color-border);background:#fff}
  .crm-pool-tab{border:1px solid var(--color-border);background:#fff;border-radius:var(--radius-md);height:34px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:13px}
  .crm-pool-tab:hover{border-color:var(--color-primary);color:var(--color-primary)}
  .crm-pool-tab.active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:650}
  .crm-pool-tab b{font-size:12px;font-weight:650;color:inherit}
  .crm-meta-stack{display:grid;gap:5px;justify-items:start}.crm-meta-stack .followup-hint{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .crm-row-actions{display:flex;gap:8px;flex-wrap:wrap}.crm-row-actions .table-action{font-size:12px}
  .crm-workbench{display:grid;grid-template-columns:1fr;gap:12px}.crm-workbench-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px}
  .crm-workbench-grid.crm-approval-grid{grid-template-columns:1fr}
  .crm-panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.crm-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--color-border);background:#fbfcfe}.crm-panel-head h3{margin:0;font-size:14px}.crm-panel-body{padding:12px 14px;display:grid;gap:10px}
  .crm-request-row{display:grid;gap:8px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}.crm-request-row strong{font-size:13px}.crm-request-row p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.5}
  .crm-inheritance-modal{width:min(1040px,calc(100vw - 48px));height:min(760px,calc(100vh - 48px))}
  .crm-inheritance-body{padding:0;background:var(--color-surface-alt)}
  .crm-inheritance-panel{display:flex;flex-direction:column;min-height:0;height:100%;background:#fff}
  .crm-inheritance-tools{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,1fr) auto;gap:12px;align-items:end;padding:14px 16px;border-bottom:1px solid var(--color-border);background:#fff}
  .crm-inheritance-tool-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
  .crm-inheritance-list{flex:1 1 auto;min-height:240px;overflow:auto;padding:0 8px;background:#fff}
  .crm-inheritance-table th:nth-child(1),.crm-inheritance-table td:nth-child(1){width:64px;min-width:64px;text-align:center}
  .crm-inheritance-table th:nth-child(2),.crm-inheritance-table td:nth-child(2){min-width:190px}
  .crm-inheritance-table td strong{display:block;font-size:13px;margin-bottom:3px}
  .inheritance-check{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:pointer}.inheritance-check input{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}
  .crm-inheritance-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-top:1px solid var(--color-border);background:var(--color-surface-alt);font-size:13px;color:var(--color-text-secondary)}
  .crm-rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.crm-rules-grid .field{min-width:0}.crm-rule-card{display:grid;gap:8px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}
  .crm-flow-list{display:grid;gap:10px}.crm-flow-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.crm-flow-item time{font-size:12px;color:var(--color-text-tertiary)}.crm-flow-item strong{display:block;font-size:13px;margin-bottom:4px}.crm-flow-item p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.6}.crm-flow-item code{font-size:11px;color:var(--color-text-tertiary)}.crm-flow-actor{display:block;margin-top:6px;font-size:11px;color:var(--color-text-tertiary)}.crm-flow-reason{margin-top:4px!important}.crm-flow-state{display:grid;gap:3px;margin-top:7px;padding-top:7px;border-top:1px dashed var(--color-border);font-size:11px;color:var(--color-text-tertiary);line-height:1.5}
  .crm-table th,.crm-table td{vertical-align:middle}.crm-table .metric-stack{display:grid;gap:5px;min-width:116px}.crm-table .metric-value{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:650}.crm-table .metric-value b{font-variant-numeric:tabular-nums;color:var(--color-primary)}.crm-table .mini-progress{height:5px;background:#e9eef5;border-radius:999px;overflow:hidden}.crm-table .mini-progress i{display:block;height:100%;border-radius:999px;background:var(--color-primary)}.crm-table .dimension-inline{display:flex;gap:4px;flex-wrap:wrap;max-width:170px}.crm-table .dimension-pill{display:inline-flex;align-items:center;gap:3px;padding:3px 6px;border-radius:999px;background:#f1f5ff;color:#4354a5;font-size:10px;white-space:nowrap}.crm-table .dimension-pill.is-low{background:#fff5eb;color:#a45313}.crm-table .latest-message{display:block;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary);font-size:12px}.crm-table .followup-hint{font-size:11px;color:var(--color-text-tertiary)}
  .crm-table .latest-message{max-width:260px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.5}
  @media(max-width:900px){.crm-workbench-grid,.crm-rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-flow-item{grid-template-columns:1fr}.crm-inheritance-tools{grid-template-columns:1fr}.crm-inheritance-tool-actions{justify-content:flex-start}}
  @media(max-width:640px){.crm-workbench-grid,.crm-rules-grid{grid-template-columns:1fr}.crm-inheritance-modal{width:calc(100vw - 20px);height:calc(100vh - 20px)}.crm-inheritance-summary{align-items:stretch;flex-direction:column}.crm-inheritance-summary .btn{width:100%}}
  .crm-agent-config-page{overflow:auto}
  .crm-agent-config-page>.page-head{margin-bottom:14px}
  .crm-agent-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(960px,100%)}
  .crm-agent-entry{appearance:none;width:100%;min-height:108px;display:grid;grid-template-columns:44px minmax(0,1fr) auto 18px;align-items:center;gap:14px;padding:18px;border-radius:8px;text-align:left;color:var(--color-text-primary);font:inherit;letter-spacing:0;cursor:pointer;transition:border-color var(--dur-normal) var(--ease-out),box-shadow var(--dur-normal) var(--ease-out),transform var(--dur-normal) var(--ease-out)}
  .crm-agent-entry:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}
  .crm-agent-entry:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}
  .crm-agent-entry-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:8px;background:var(--color-primary-soft);color:var(--color-primary)}
  .crm-agent-entry-copy{display:grid;gap:5px;min-width:0}
  .crm-agent-entry-copy strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere}
  .crm-agent-entry-copy span{font-size:12px;line-height:1.45;color:var(--color-text-secondary)}
  .crm-agent-entry-arrow{color:var(--color-text-tertiary)}
  .crm-model-config-page{overflow:auto}
  .crm-model-config-page>.page-head{margin-bottom:14px}
  .crm-model-config-shell{display:grid;gap:14px;min-width:0}
  .crm-config-form{width:min(840px,100%)}
  .crm-config-form>.card-body,.crm-profile-config-page .card>.card-body{display:grid;gap:16px}
  .crm-profile-config-page .crm-model-config-shell{width:min(1080px,100%)}
  .crm-dimension-editor{display:grid;gap:12px}
  .crm-dimension-row{display:grid;gap:12px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}
  .crm-dimension-head{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px;align-items:end}
  .crm-dimension-head .field{gap:4px}
  .crm-dimension-head .field>span{font-size:11px}
  .crm-dimension-row>.field{gap:5px}
  .crm-dimension-row>.field textarea{min-height:68px}
  .crm-score-guide{border-top:1px solid var(--color-border);padding-top:10px}
  .crm-score-guide>summary{width:max-content;cursor:pointer;color:var(--color-primary);font-size:12px;font-weight:650;list-style-position:inside}
  .crm-score-guide[open]>summary{margin-bottom:10px}
  .crm-scoring-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .crm-scoring-grid .field{gap:4px}
  .crm-scoring-grid .field>span{font-size:11px}
  .crm-scoring-grid .input{height:34px;padding:0 10px;font-size:12px}
  .crm-prompt-input{min-height:120px}
  .crm-weight-total{display:flex;align-items:baseline;justify-content:flex-end;gap:7px;min-width:112px;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--color-text-secondary)}
  .crm-weight-total strong{font-size:16px;color:var(--color-danger-text);font-variant-numeric:tabular-nums}
  .crm-weight-total span{font-size:11px;white-space:nowrap}
  .crm-weight-total.is-ready{border-color:#b7ebd0;background:#f0fdf4}
  .crm-weight-total.is-ready strong{color:var(--color-success-text)}
  .crm-weight-total.is-error{border-color:#f3c7c7;background:#fff7f7}
  @media(max-width:900px){.crm-insight-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:760px){
    .crm-agent-config-grid{grid-template-columns:1fr}
    .crm-dimension-head{grid-template-columns:minmax(0,1fr) 96px}
    .crm-scoring-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media(max-width:480px){
    .crm-agent-entry{grid-template-columns:40px minmax(0,1fr) auto 16px;gap:10px;padding:15px;min-height:96px}
    .crm-agent-entry-icon{width:40px;height:40px}
    .crm-model-config-shell{gap:10px}
    .crm-dimension-row{padding:13px}
    .crm-dimension-head{grid-template-columns:1fr}
    .crm-scoring-grid{grid-template-columns:1fr}
  }
  @media(max-width:900px){.customer-detail-grid,.profile-analysis-layout{grid-template-columns:1fr}.customer-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:560px){.profile-field-grid,.signal-grid,.profile-summary-facts,.customer-dimension-grid{grid-template-columns:1fr}.customer-detail-tabs{gap:16px}.detail-section{padding:14px}}
  .customer-detail-card .card-head{gap:10px}
  .customer-detail-card .card-head .icon-btn{margin-left:auto}
  .table-actions{display:inline-flex;align-items:center;gap:16px;flex-wrap:nowrap;white-space:nowrap}
  .table-action{
    border:0;background:none;padding:0;color:var(--color-primary);font-size:13px;
    cursor:pointer;font-weight:500;white-space:nowrap;
  }
  .table-action:hover{text-decoration:underline}
  .handoff-foot{
    display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 18px;
    color:var(--color-text-tertiary);font-size:12px;border-top:1px solid var(--color-border);flex:none;
  }
  .handoff-foot.handoff-pagination{justify-content:space-between}
  .handoff-pagination-info{color:var(--color-text-tertiary);font-size:11px}
  .handoff-pagination-buttons{display:flex;align-items:center;gap:6px}
  .handoff-page-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:34px;height:32px;padding:0 10px;border:1px solid var(--color-border);border-radius:7px;background:#fff;color:var(--color-text-secondary);font-size:12px;cursor:pointer}
  .handoff-page-btn:hover:not(:disabled){border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary)}
  .handoff-page-btn:disabled{cursor:not-allowed;opacity:.45}
  .handoff-page-number{min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer}
  .handoff-page-number.active{border-color:#cfd7ff;background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}
  .access-lock{padding:28px;text-align:center}
  @media (max-width:900px){
    .page.handoff-page,.page.wakeup-page{overflow:auto}
    .handoff-board{grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;min-height:0;align-content:start}
    .handoff-side{
      border-right:0;border-bottom:1px solid var(--color-border);display:flex;
      flex-wrap:nowrap;align-items:center;gap:6px;padding:8px;overflow-x:auto;overflow-y:hidden;
    }
    .handoff-side-item{width:auto;min-width:max-content;height:36px;flex:0 0 auto;padding:0 12px}
    .handoff-main{height:auto;min-height:420px}
    .handoff-table{table-layout:auto}
    .handoff-task-table{table-layout:fixed}
  }
  @media (max-width:620px){
    .handoff-foot.handoff-pagination{align-items:flex-start;flex-direction:column}
    .handoff-pagination-buttons{width:100%;justify-content:flex-end;flex-wrap:wrap}
  }
  @media (max-width:1100px){
    .sales-wb-top,.sales-wb-bottom,.sales-kpi-grid{grid-template-columns:1fr}
  }

/* ---------- 顶栏 ---------- */
.topbar{box-shadow:0 1px 0 var(--color-border),0 1px 14px -10px rgba(15,23,42,.18)}
.crumb strong{letter-spacing:-.015em}
.searchbox input{transition:border-color .13s,box-shadow .13s,background .13s,width .2s}
.searchbox:focus-within input{box-shadow:var(--shadow-focus)}
.icon-btn{transition:background .13s,color .13s,box-shadow .13s,transform .13s}
.icon-btn:hover{background:var(--color-primary-soft);color:var(--color-primary)}
.icon-btn:active{transform:scale(.94)}
.icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
#liveApp.is-seamless-render,
#liveApp.is-seamless-render *{scroll-behavior:auto!important}
#liveApp.is-seamless-render *,
#liveApp.is-seamless-render *::before,
#liveApp.is-seamless-render *::after{
  animation:none!important;
  transition:none!important;
}
#liveApp.app-ready .page,
#liveApp.app-ready .live-stage>section,
#liveApp.app-ready .card-head,
#liveApp.app-ready .message,
#liveApp.app-ready .feedback{animation:none!important}

/* ---------- 指标卡：趋势 + 火花线 ---------- */
.metric-grid{margin-bottom:var(--space-5)}
.metric-card{
  padding:18px 18px 16px;overflow:hidden;
  transition:transform var(--dur-normal) var(--ease-out),box-shadow var(--dur-normal) var(--ease-out),border-color var(--dur-normal) var(--ease-out);
  position:relative;
}
.metric-card::after{
  content:"";position:absolute;right:-22px;top:-22px;width:84px;height:84px;border-radius:50%;
  background:radial-gradient(circle,rgba(100,116,139,.12),transparent 70%);pointer-events:none;
}
.metric-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:rgba(100,116,139,.42)}
.metric-card .k{display:flex;align-items:center;gap:6px}
.metric-card .k::before{content:"";width:6px;height:6px;border-radius:50%;background:#64748B;box-shadow:0 0 0 3px rgba(100,116,139,.14)}
.metric-card .v{margin-top:6px;font-weight:720;letter-spacing:-.028em;display:flex;align-items:baseline;gap:8px}
.metric-card .h{display:flex;align-items:center;gap:6px;margin-top:4px}
.spark{display:flex;align-items:flex-end;gap:2px;height:26px;margin-top:auto}
.spark i{flex:1;min-width:2px;border-radius:2px 2px 0 0;background:linear-gradient(180deg,var(--color-accent-bright),var(--color-primary));opacity:.7;transition:opacity .2s}
.metric-card:hover .spark i{opacity:1}
.trend{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:700;padding:1px 7px;border-radius:var(--radius-pill);line-height:1.6}
.trend.up{color:var(--color-success-text);background:var(--color-success-soft)}
.trend.down{color:var(--color-danger-text);background:var(--color-danger-soft)}
.trend svg{width:11px;height:11px}

/* ---------- 任务分配：人员比例配置 ---------- */
.assignment-page{max-width:1040px}
.assignment-card{overflow:hidden}
.assignment-loading{padding:48px 20px;text-align:center;color:var(--color-text-tertiary)}
.assignment-table-wrap{overflow-x:auto}
.assignment-table{min-width:640px;font-size:14px}
.assignment-table thead th{height:44px;padding:0 20px;text-align:left;font-size:12px;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border-strong);white-space:nowrap}
.assignment-table tbody td{padding:14px 20px;border-bottom:1px solid var(--color-border);vertical-align:middle}
.assignment-table tbody tr:last-child td{border-bottom:0}
.assignment-table tbody tr:hover{background:#fbfcff}
.assignment-table thead th:nth-child(1){width:52%}
.assignment-table thead th:nth-child(2){width:24%}
.assignment-table thead th:nth-child(3){width:24%}
.assignment-user{display:flex;align-items:center;gap:12px;min-width:0}
.assignment-user .handoff-av{width:38px;height:38px;flex:none}
.assignment-user-meta{display:grid;gap:2px;min-width:0}
.assignment-user-meta strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assignment-user-meta span{font-size:12px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assignment-percent-input{display:inline-flex;align-items:center;gap:8px;width:140px}
.assignment-weight-input{height:38px;width:112px;text-align:right;font-variant-numeric:tabular-nums}
.assignment-percent-input>span{font-size:14px;color:var(--color-text-secondary)}
.assignment-action-cell{display:flex;align-items:center;gap:10px;min-width:190px}
.assignment-action-button{min-width:104px}
.assignment-action-state{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}
.assignment-action-state.is-active{color:var(--color-success-text)}
.assignment-action-state.is-paused{color:var(--color-warning-text)}
.assignment-savebar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-top:1px solid var(--color-border);background:var(--color-surface-alt)}
.assignment-total{display:flex;align-items:baseline;gap:10px;min-width:0}
.assignment-total>span:first-child{font-size:13px;color:var(--color-text-secondary)}
.assignment-total-value{font-size:24px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.assignment-total-hint{font-size:12px;white-space:nowrap}
.assignment-total-hint.is-balanced{color:var(--color-success-text)}
.assignment-total-hint.is-under,.assignment-total-hint.is-over{color:var(--color-warning-text)}
.assignment-card .empty{padding:36px 20px;text-align:center;color:var(--color-text-tertiary)}
@media(max-width:720px){
  .assignment-page{padding:20px 14px}
  .assignment-card .card-head{padding-left:16px;padding-right:16px}
  .assignment-table{min-width:560px}
  .assignment-table thead th,.assignment-table tbody td{padding-left:16px;padding-right:16px}
  .assignment-savebar{align-items:flex-start;flex-direction:column;padding:16px}
  .assignment-savebar .btn{width:100%}
}

/* ---------- 客户卡：头像 + 未读点 ---------- */
.customer-card{display:flex;gap:11px;align-items:flex-start;transition:background .12s,box-shadow .12s}
.cust-avatar{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--color-surface-sunken),var(--color-surface-alt));
  color:var(--color-text-secondary);font-size:13px;font-weight:700;border:1px solid var(--color-border);
  transition:all .15s}
.customer-card:hover .cust-avatar{color:var(--color-primary);border-color:var(--color-border-strong)}
.customer-card.active .cust-avatar{background:var(--grad-primary);color:#fff;border-color:transparent;box-shadow:0 5px 12px -4px rgba(44,54,72,.5)}
.customer-main{flex:1;min-width:0}
.customer-name{display:flex;align-items:center;gap:6px}
.customer-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--color-danger);flex:none;box-shadow:0 0 0 3px rgba(220,38,38,.16);animation:pulse 2s ease-in-out infinite}

/* ---------- 对话气泡节奏 ---------- */
.message{animation:msgIn .3s var(--ease-out)}
.bubble{box-shadow:0 1px 2px rgba(15,23,42,.06),0 4px 12px -6px rgba(15,23,42,.10)}
.message.outbound .bubble{box-shadow:0 1px 2px rgba(70,95,255,.18),0 6px 16px -6px rgba(70,95,255,.28)}
.message-avatar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.composer{border-top:1px solid var(--color-border)}

/* ---------- 工作流节点：类型色轨 ---------- */
.workflow-node{border-left:4px solid var(--color-border-strong);overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}
.workflow-node:hover{transform:translateY(-1px)}
.workflow-node.trigger{border-left-color:var(--type-trigger)}
.workflow-node.timer{border-left-color:var(--type-timer)}
.workflow-node.ai{border-left-color:var(--type-ai)}
.workflow-node.condition,.workflow-node.rule{border-left-color:var(--type-condition)}
.workflow-node.integration{border-left-color:var(--type-integration)}
.workflow-node.guard{border-left-color:var(--type-guard)}
.workflow-node.action{border-left-color:var(--type-action)}
.node-template{transition:border-color .15s,background .15s,transform .15s}
.node-template:hover{transform:translateY(-1px)}
.node-template:active{cursor:grabbing;transform:scale(.98)}
.workflow-board{background-image:radial-gradient(rgba(148,163,184,.5) 1px,transparent 1px);background-size:22px 22px}
.workflow-board-scroll{box-shadow:inset 0 0 0 1px var(--color-border)}
.workflow-edge{vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision}
.workflow-edge-label{vector-effect:non-scaling-stroke}
.workflow-node.dragging{transition:none!important;will-change:left,top}
.wakeup-step{transition:border-color .15s,box-shadow .15s,transform .15s}
.wakeup-step:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.trace-row{transition:border-color .15s,box-shadow .15s}
.trace-row:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}

/* ---------- 空态：图标 ---------- */
.empty{
  padding:var(--space-10) var(--space-6);text-align:center;color:var(--color-text-tertiary);
  display:flex;flex-direction:column;align-items:center;gap:var(--space-3);
}
td.empty{display:table-cell;padding:var(--space-8) var(--space-6)}
.empty-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:var(--color-surface-alt);color:var(--color-text-tertiary);border:1px solid var(--color-border)}
.empty-icon svg{width:20px;height:20px}
.no-perm .ring{background:linear-gradient(135deg,var(--color-neutral-soft),#fff)}

/* ---------- 骨架屏 ---------- */
.skeleton{
  background:linear-gradient(90deg,var(--color-surface-alt) 25%,var(--color-surface-sunken) 37%,var(--color-surface-alt) 63%);
  background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm);
}
.skeleton.line{height:12px;margin-bottom:8px}
.skeleton.line:last-child{margin-bottom:0;width:60%}
.skeleton.block{height:92px;border-radius:var(--radius-lg)}
.skeleton.head{height:20px;width:38%;margin-bottom:14px}
.conversation-loading{display:flex;flex-direction:column;gap:8px;padding:18px 6px}
.conversation-loading .skeleton.block{width:68%;height:64px;margin-bottom:10px}
.sk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-5)}
.sk-row{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff}

/* ---------- 吐司 / 反馈 ---------- */
.feedback{animation:toastIn .35s var(--ease-spring);border-left-width:3px;display:flex;gap:10px;align-items:flex-start}
.feedback::before{content:"";width:4px;align-self:stretch;border-radius:2px}
.feedback.info::before{background:var(--color-info)}
.feedback.ok::before{background:var(--color-success)}
.feedback.warn::before{background:var(--color-warning)}
.feedback.err::before{background:var(--color-danger)}

/* ---------- 配置项 / 列表行 ---------- */
.config-item{transition:border-color .15s,background .15s}
.config-item:hover{border-color:var(--color-border-strong)}
.list-rows>li{transition:background .12s,border-color .12s}

/* ---------- 入场动画 ---------- */
.page{animation:viewIn .28s var(--ease-out)}
.live-stage>section{animation:viewIn .28s var(--ease-out)}
.card-head{animation:fadeSlide .4s var(--ease-out)}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes viewIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes fadeSlide{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(220,38,38,.16)}50%{box-shadow:0 0 0 5px rgba(220,38,38,.08)}}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@keyframes interactionProgress{0%{transform:translateX(-110%)}60%{transform:translateX(170%)}100%{transform:translateX(275%)}}
@keyframes interactionSpin{to{transform:rotate(360deg)}}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary);background-clip:padding-box}
.message-list::-webkit-scrollbar-thumb,.workflow-board-scroll::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px;border:2px solid transparent;background-clip:padding-box}

/* ---------- 可达性：全局聚焦 ---------- */
.btn:focus-visible,.nav-item:focus-visible,.nav-group-head:focus-visible,
.customer-card:focus-visible,.node-template:focus-visible,.check-card:focus-visible,
.tab:focus-visible,.seg button:focus-visible,.switch input:focus-visible+.track{
  outline:none;box-shadow:var(--shadow-focus)}
.customer-card:focus-visible{box-shadow:inset 3px 0 0 var(--color-primary),var(--shadow-focus)}

/* ---------- 徽章微调 ---------- */
.badge{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.tag{transition:border-color .15s,background .15s}

/* ---------- 工具栏 / 分割 ---------- */
.divider{background:linear-gradient(90deg,transparent,var(--color-border) 12%,var(--color-border) 88%,transparent)}
@media (prefers-reduced-motion:reduce){
  .message,.page,.live-stage>section,.card-head,.feedback,.metric-card,.workflow-node,.wakeup-step{animation:none !important}
  .unread-dot{animation:none !important}
  #liveApp.is-interacting::before{animation:none;transform:none;width:100%}
  #liveApp .is-action-pending::after{animation:none;border-right-color:currentColor}
  .agent-screen .im-send-spinner{animation:none !important}
}

@media(max-width:900px){.knowledge-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-content-grid,.knowledge-test-grid{grid-template-columns:minmax(0,1fr)}.knowledge-content-grid>*,.knowledge-test-grid>*{min-width:0}.knowledge-overview-bar{align-items:flex-start;flex-direction:column}.knowledge-overview-meta{justify-content:flex-start}.knowledge-preview-drawer{width:min(760px,92vw)}}
@media(max-width:620px){.knowledge-hero{flex-direction:column}.knowledge-summary-grid{grid-template-columns:1fr}.knowledge-toolbar{align-items:flex-start;flex-direction:column}.knowledge-tabs{width:100%;overflow:auto}.knowledge-tab{flex:1 0 auto}.knowledge-upload-card>.card-head{align-items:flex-start}.knowledge-upload-card>.card-head>div{min-width:0}.knowledge-upload-main{grid-template-columns:auto minmax(0,1fr);padding:16px}.knowledge-upload-main p{overflow-wrap:anywhere}.knowledge-file-trigger{grid-column:1/-1;justify-self:stretch;justify-content:center}.knowledge-upload-footer{align-items:stretch;flex-direction:column}.knowledge-upload-footer .btn{justify-content:center}.knowledge-preview-overview{align-items:flex-start;flex-direction:column}.knowledge-preview-drawer{width:94vw}.knowledge-preview-drawer-body{padding:14px}.knowledge-chunk-head{gap:8px}.knowledge-chunk-actions{margin-left:auto}}
