/* ==========================================================================
   智获 · 短视频自动获客系统 —— 深蓝科技风主题
   ========================================================================== */

:root{
  --bg:#050c19;
  --bg-grad-1:#071328;
  --bg-grad-2:#040a14;
  --panel:#0b1830;
  --panel-2:#0e1e3c;
  --panel-3:#122546;
  --elev:#13284c;
  --line:rgba(93,144,222,.16);
  --line-strong:rgba(93,144,222,.32);
  --text:#e8f0ff;
  --text-2:#b7c8e4;
  --muted:#7d91b3;
  --muted-2:#5d6f8d;
  --accent:#3b82f6;
  --accent-2:#38bdf8;
  --accent-3:#22d3ee;
  --accent-glow:rgba(59,130,246,.35);
  --ok:#2fd07a;
  --warn:#f5b942;
  --danger:#ff5f6d;
  --purple:#a78bfa;
  --radius:14px;
  --radius-sm:9px;
  --shadow:0 18px 44px rgba(0,0,0,.45);
  --shadow-sm:0 6px 18px rgba(0,0,0,.32);
  --font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--font);
  background:
    radial-gradient(1200px 700px at 12% -8%, rgba(59,130,246,.20), transparent 60%),
    radial-gradient(900px 600px at 96% 4%, rgba(34,211,238,.13), transparent 55%),
    linear-gradient(180deg,var(--bg-grad-1),var(--bg-grad-2));
  background-attachment:fixed;
  color:var(--text);
  font-size:14px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100%;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;outline:none}
ul,ol{list-style:none}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(93,144,222,.22);border-radius:9px}
::-webkit-scrollbar-thumb:hover{background:rgba(93,144,222,.4)}

/* ---------------- 布局骨架 ---------------- */
.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}

.sidebar{
  background:linear-gradient(180deg,rgba(11,24,48,.96),rgba(6,14,28,.96));
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow-y:auto;
  backdrop-filter:blur(8px);
}
.brand{
  display:flex;align-items:center;gap:11px;
  padding:20px 18px 16px;
}
.brand-logo{
  width:38px;height:38px;border-radius:11px;flex:none;
  background:linear-gradient(135deg,#3b82f6,#22d3ee);
  display:grid;place-items:center;
  box-shadow:0 6px 18px rgba(59,130,246,.45);
}
.brand-logo svg{width:22px;height:22px}
.brand-txt b{display:block;font-size:15px;letter-spacing:.5px;font-weight:700}
.brand-txt span{display:block;font-size:11px;color:var(--muted);letter-spacing:1.6px}

.nav-group{padding:8px 0}
.nav-title{
  font-size:11px;color:var(--muted-2);letter-spacing:1.6px;
  padding:12px 20px 6px;font-weight:600;
}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 18px;margin:2px 10px;border-radius:10px;
  color:var(--text-2);cursor:pointer;font-size:13.5px;
  position:relative;transition:.18s;
}
.nav-item svg{width:17px;height:17px;flex:none;opacity:.85}
.nav-item:hover{background:rgba(59,130,246,.10);color:var(--text)}
.nav-item.active{
  background:linear-gradient(90deg,rgba(59,130,246,.26),rgba(59,130,246,.06));
  color:#fff;font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(59,130,246,.3);
}
.nav-item.active::before{
  content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);
  width:3px;height:20px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#38bdf8,#3b82f6);
  box-shadow:0 0 12px var(--accent-glow);
}
.nav-item .badge{
  margin-left:auto;background:var(--danger);color:#fff;font-size:10.5px;
  padding:1px 6px;border-radius:20px;font-weight:700;line-height:16px;
}
.sidebar-foot{
  margin-top:auto;padding:14px 18px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--muted-2);line-height:1.7;
}
.dot-live{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px;
  box-shadow:0 0 0 0 rgba(47,208,122,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,208,122,.5)}70%{box-shadow:0 0 0 8px rgba(47,208,122,0)}100%{box-shadow:0 0 0 0 rgba(47,208,122,0)}}

/* ---------------- 顶栏 ---------------- */
.main{display:flex;flex-direction:column;min-width:0}
.topbar{
  height:62px;flex:none;display:flex;align-items:center;gap:14px;
  padding:0 26px;border-bottom:1px solid var(--line);
  background:rgba(7,17,34,.72);backdrop-filter:blur(12px);
  position:sticky;top:0;z-index:40;
}
.crumb{font-size:13px;color:var(--muted)}
.crumb b{color:var(--text);font-weight:600}
.crumb i{font-style:normal;margin:0 7px;color:var(--muted-2)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.biz-switch{
  display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:9px;
  background:var(--panel-2);border:1px solid var(--line);font-size:12.5px;cursor:pointer;
}
.biz-switch select{background:transparent;border:none;font-size:12.5px;cursor:pointer}
.biz-switch select option{background:#0b1830}
.icon-btn{
  width:36px;height:36px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel-2);display:grid;place-items:center;cursor:pointer;position:relative;transition:.18s;
}
.icon-btn:hover{border-color:var(--line-strong);background:var(--elev)}
.icon-btn svg{width:17px;height:17px;color:var(--text-2)}
.icon-btn .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--danger);border:2px solid #0b1830}
.me{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border-radius:30px;background:var(--panel-2);border:1px solid var(--line)}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;flex:none}
.me-meta b{display:block;font-size:12.5px;line-height:1.2}
.me-meta span{display:block;font-size:10.5px;color:var(--muted)}

.content{padding:22px 26px 60px;flex:1;min-width:0}

/* ---------------- 页头 ---------------- */
.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head h2{font-size:20px;font-weight:700;letter-spacing:.3px}
.page-head p{font-size:12.5px;color:var(--muted);margin-top:3px}
.page-head .actions{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}

/* ---------------- 按钮 ---------------- */
.btn{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 15px;
  border-radius:9px;border:1px solid var(--line);background:var(--panel-2);
  color:var(--text-2);font-size:13px;cursor:pointer;transition:.16s;white-space:nowrap;
}
.btn:hover{border-color:var(--line-strong);color:#fff;background:var(--elev)}
.btn svg{width:15px;height:15px}
.btn-primary{
  background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:transparent;color:#fff;font-weight:600;
  box-shadow:0 8px 20px rgba(37,99,235,.35);
}
.btn-primary:hover{background:linear-gradient(135deg,#4b8dff,#2f6ff0);color:#fff}
.btn-ghost{background:transparent}
.btn-danger{color:#ffb3ba;border-color:rgba(255,95,109,.3)}
.btn-danger:hover{background:rgba(255,95,109,.12);border-color:rgba(255,95,109,.5);color:#fff}
.btn-sm{height:28px;padding:0 11px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------------- 卡片 ---------------- */
.card{
  background:linear-gradient(180deg,rgba(14,30,60,.92),rgba(9,20,40,.92));
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);overflow:hidden;
}
.card-hd{
  display:flex;align-items:center;gap:10px;padding:14px 18px;
  border-bottom:1px solid var(--line);
}
.card-hd h3{font-size:14px;font-weight:600}
.card-hd .sub{font-size:11.5px;color:var(--muted)}
.card-hd .hd-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.card-bd{padding:16px 18px}
.card-bd.tight{padding:0}

.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.g-2-1{grid-template-columns:2fr 1fr}
.g-1-2{grid-template-columns:1fr 2fr}
@media (max-width:1400px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.g2,.g3,.g-2-1,.g-1-2{grid-template-columns:1fr}}

/* ---------------- KPI ---------------- */
.kpi{
  position:relative;padding:16px 18px;border-radius:var(--radius);
  background:linear-gradient(160deg,rgba(19,40,76,.95),rgba(9,20,40,.95));
  border:1px solid var(--line);overflow:hidden;
}
.kpi::after{
  content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,rgba(59,130,246,.28),transparent 70%);
}
.kpi-k{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.kpi-v{font-size:27px;font-weight:700;letter-spacing:.5px;margin:7px 0 3px;font-family:var(--mono)}
.kpi-v small{font-size:13px;font-weight:500;color:var(--muted);margin-left:3px;font-family:var(--font)}
.kpi-d{font-size:11.5px;color:var(--muted)}
.kpi-d .up{color:var(--ok)}
.kpi-d .down{color:var(--danger)}
.kpi-ico{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(59,130,246,.14);border:1px solid rgba(59,130,246,.25)}
.kpi-ico svg{width:17px;height:17px;color:var(--accent-2)}

/* ---------------- 表格 ---------------- */
.table-wrap{overflow-x:auto}
table.tb{width:100%;border-collapse:collapse;font-size:13px;min-width:680px}
table.tb th{
  text-align:left;font-weight:600;font-size:12px;color:var(--muted);
  padding:11px 14px;background:rgba(9,20,40,.6);border-bottom:1px solid var(--line);
  white-space:nowrap;position:sticky;top:0;
}
table.tb td{padding:12px 14px;border-bottom:1px solid rgba(93,144,222,.08);vertical-align:middle}
table.tb tbody tr{transition:.14s;cursor:pointer}
table.tb tbody tr:hover{background:rgba(59,130,246,.07)}
table.tb tbody tr:last-child td{border-bottom:none}
.tb .num{font-family:var(--mono);font-size:12.5px}
.tb .strong{color:#fff;font-weight:600}
.tb .sub{font-size:11.5px;color:var(--muted)}
.row-actions{display:flex;gap:6px}

/* ---------------- 标签 ---------------- */
.tag{
  display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 8px;
  border-radius:6px;font-size:11.5px;font-weight:500;white-space:nowrap;
  background:rgba(59,130,246,.14);color:#8fc0ff;border:1px solid rgba(59,130,246,.22);
}
.tag.outline{background:transparent;color:var(--muted);border-color:var(--line)}
.tag.ok{background:rgba(47,208,122,.14);color:#6ee7a8;border-color:rgba(47,208,122,.22)}
.tag.warn{background:rgba(245,185,66,.14);color:#f8cd74;border-color:rgba(245,185,66,.22)}
.tag.danger{background:rgba(255,95,109,.14);color:#ff9aa4;border-color:rgba(255,95,109,.22)}
.tag.purple{background:rgba(167,139,250,.15);color:#c4b3fd;border-color:rgba(167,139,250,.25)}
.tag.gray{background:rgba(125,145,179,.13);color:#9db0cd;border-color:rgba(125,145,179,.2)}
.tag-intent{width:22px;height:22px;border-radius:7px;display:inline-grid;place-items:center;font-weight:800;font-size:12px}
.intent-A{background:linear-gradient(135deg,#ff5f6d,#ff8a5b);color:#fff}
.intent-B{background:linear-gradient(135deg,#f5b942,#f59e0b);color:#3a2a00}
.intent-C{background:rgba(125,145,179,.25);color:#b9c8e0}

.pf{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}
.pf .pf-dot{width:7px;height:7px;border-radius:2px;flex:none}
.pf-douyin{background:#ff4d6d}.pf-shipinhao{background:#2fd07a}
.pf-xiaohongshu{background:#ff5b5b}.pf-kuaishou{background:#ff9f43}
.pf-web{background:#38bdf8}

/* ---------------- 表单控件 ---------------- */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12.5px;color:var(--text-2)}
.field .hint{font-size:11.5px;color:var(--muted-2)}
.input,.select,textarea.input{
  height:36px;padding:0 12px;border-radius:9px;border:1px solid var(--line);
  background:rgba(5,13,26,.75);color:var(--text);transition:.16s;width:100%;
}
textarea.input{height:auto;padding:10px 12px;resize:vertical;line-height:1.6}
.input:focus,.select:focus,textarea.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.16)}
.select{cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237d91b3' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.select option{background:#0b1830;color:var(--text)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.filters .field{min-width:140px}
.switch{position:relative;width:42px;height:23px;border-radius:20px;background:rgba(125,145,179,.28);cursor:pointer;transition:.2s;flex:none}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s}
.switch.on{background:linear-gradient(135deg,#3b82f6,#22d3ee)}
.switch.on::after{left:22px}
.check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}
.check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}

/* ---------------- tabs ---------------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tab{
  padding:9px 15px;font-size:13px;color:var(--muted);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:.16s;
}
.tab:hover{color:var(--text-2)}
.tab.active{color:#fff;font-weight:600;border-bottom-color:var(--accent)}
.chip-bar{display:flex;gap:7px;flex-wrap:wrap}
.chip{padding:5px 12px;border-radius:20px;font-size:12.5px;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;transition:.16s}
.chip:hover{border-color:var(--line-strong)}
.chip.active{background:linear-gradient(135deg,rgba(59,130,246,.3),rgba(34,211,238,.15));color:#fff;border-color:rgba(59,130,246,.45);font-weight:600}

/* ---------------- 抽屉 ---------------- */
.mask{position:fixed;inset:0;background:rgba(2,7,16,.66);backdrop-filter:blur(3px);z-index:80;opacity:0;pointer-events:none;transition:.22s}
.mask.show{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;height:100vh;width:560px;max-width:92vw;z-index:90;
  background:linear-gradient(180deg,#0c1c38,#081426);border-left:1px solid var(--line-strong);
  box-shadow:-24px 0 60px rgba(0,0,0,.55);
  transform:translateX(102%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
}
.drawer.show{transform:none}
.drawer-hd{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.drawer-hd h3{font-size:16px;font-weight:700}
.drawer-hd .x{margin-left:auto;cursor:pointer;color:var(--muted);width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
.drawer-hd .x:hover{background:var(--panel-3);color:#fff}
.drawer-bd{padding:18px 20px;overflow-y:auto;flex:1}
.drawer-ft{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}

.kv{display:grid;grid-template-columns:96px 1fr;gap:9px 14px;font-size:13px}
.kv dt{color:var(--muted)}
.kv dd{color:var(--text)}
.kv dd.empty{color:var(--muted-2);font-style:normal}

.sec-title{font-size:12px;font-weight:700;color:var(--text-2);letter-spacing:1px;margin:20px 0 10px;display:flex;align-items:center;gap:8px}
.sec-title::before{content:"";width:3px;height:12px;border-radius:2px;background:linear-gradient(180deg,#38bdf8,#3b82f6)}
.sec-title:first-child{margin-top:0}

/* ---------------- 时间线 ---------------- */
.timeline{position:relative;padding-left:20px}
.timeline::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:1px;background:var(--line-strong)}
.tl-item{position:relative;padding-bottom:16px}
.tl-item::before{content:"";position:absolute;left:-19px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.16)}
.tl-item .tl-hd{display:flex;gap:9px;align-items:center;font-size:13px}
.tl-item .tl-hd b{font-weight:600}
.tl-item .tl-time{font-size:11.5px;color:var(--muted);margin-left:auto;font-family:var(--mono)}
.tl-item .tl-bd{font-size:12.5px;color:var(--text-2);margin-top:5px;background:rgba(9,20,40,.6);border:1px solid var(--line);border-radius:9px;padding:9px 12px}

/* ---------------- 空态 / 加载 ---------------- */
.empty{padding:56px 20px;text-align:center;color:var(--muted)}
.empty svg{width:44px;height:44px;opacity:.4;margin-bottom:10px}
.empty p{font-size:13px}
.empty .sub{font-size:12px;color:var(--muted-2);margin-top:4px}

/* ---------------- 看板（CRM 流水线） ---------------- */
.kanban{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
.kb-col{background:rgba(9,20,40,.55);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:180px}
.kb-col-hd{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;margin-bottom:9px}
.kb-col-hd .n{margin-left:auto;font-size:11px;color:var(--muted);font-family:var(--mono);background:rgba(125,145,179,.14);padding:1px 6px;border-radius:20px}
.kb-card{background:linear-gradient(160deg,rgba(19,40,76,.9),rgba(11,24,48,.9));border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;cursor:pointer;transition:.16s}
.kb-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.kb-card .t{font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:6px}
.kb-card .m{font-size:11px;color:var(--muted);margin-top:5px;display:flex;gap:8px;flex-wrap:wrap}
.kb-col.drag-over{border-color:var(--accent);background:rgba(59,130,246,.1)}

/* ---------------- IM 工作台 ---------------- */
.im{display:grid;grid-template-columns:290px 1fr 290px;height:calc(100vh - 62px - 44px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:rgba(8,18,36,.6)}
.im-list{overflow-y:auto;border-right:1px solid var(--line)}
.im-item{padding:12px 14px;border-bottom:1px solid rgba(93,144,222,.08);cursor:pointer;transition:.16s}
.im-item:hover{background:rgba(59,130,246,.07)}
.im-item.active{background:rgba(59,130,246,.14)}
.im-item .top{display:flex;align-items:center;gap:8px}
.im-item .top b{font-size:13px;font-weight:600}
.im-item .top .time{margin-left:auto;font-size:10.5px;color:var(--muted-2);font-family:var(--mono)}
.im-item .msg{font-size:12px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-item .unread{margin-left:6px;background:var(--danger);color:#fff;border-radius:20px;font-size:10px;padding:0 6px;line-height:16px;display:inline-block}
.im-chat{display:flex;flex-direction:column;min-width:0}
.im-chat-hd{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);flex:none}
.im-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}
.msg-row{display:flex;gap:10px;max-width:78%}
.msg-row.me{align-self:flex-end;flex-direction:row-reverse}
.bubble{background:var(--panel-3);border:1px solid var(--line);border-radius:12px;padding:9px 13px;font-size:13px;line-height:1.6}
.msg-row.me .bubble{background:linear-gradient(135deg,rgba(59,130,246,.9),rgba(37,99,235,.9));border-color:transparent;color:#fff}
.msg-row .who{font-size:11px;color:var(--muted-2);margin-top:5px;text-align:right}
.im-input{flex:none;border-top:1px solid var(--line);padding:12px 16px;display:flex;gap:10px;align-items:flex-end}
.quick-replies{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.qr{font-size:11.5px;padding:4px 10px;border-radius:20px;background:var(--panel-3);border:1px solid var(--line);cursor:pointer;transition:.16s}
.qr:hover{border-color:var(--accent);color:#fff}
.im-side{border-left:1px solid var(--line);padding:16px;overflow-y:auto}
.im-side .sec-title{margin-top:0}

/* ---------------- 平台账号卡 ---------------- */
.acct{display:flex;gap:12px;align-items:center;padding:14px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(19,40,76,.7),rgba(9,20,40,.7))}
.acct .ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:15px;font-weight:800;color:#fff;flex:none}
.acct .meta{min-width:0;flex:1}
.acct .meta b{font-size:13.5px;display:block}
.acct .meta span{font-size:11.5px;color:var(--muted)}
.acct .st{display:flex;flex-direction:column;align-items:flex-end;gap:5px}

/* ---------------- 表单构建器 ---------------- */
.builder{display:grid;grid-template-columns:230px 1fr 280px;gap:14px;align-items:start}
.bld-palette .p-item{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:9px;
  border:1px dashed var(--line-strong);margin-bottom:8px;font-size:12.5px;cursor:grab;color:var(--text-2);
  background:rgba(9,20,40,.4);transition:.16s;
}
.bld-palette .p-item:hover{border-color:var(--accent);color:#fff;background:rgba(59,130,246,.1)}
.bld-canvas{background:rgba(9,20,40,.45);border:1px solid var(--line);border-radius:12px;padding:14px;min-height:420px}
.bld-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;background:rgba(19,40,76,.6);border:1px solid var(--line);margin-bottom:9px}
.bld-row .drag{color:var(--muted-2);cursor:grab}
.bld-row .lb{font-size:13px;flex:1}
.bld-row .lb small{color:var(--muted);font-size:11px;margin-left:6px}
.bld-row .ops{display:flex;gap:4px}
.bld-row .ops button{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.bld-row .ops button:hover{color:#fff;border-color:var(--line-strong)}
.bld-row.sel{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.14)}

/* ---------------- 漏斗 ---------------- */
.funnel{display:flex;flex-direction:column;gap:9px}
.fn-row{display:flex;align-items:center;gap:12px}
.fn-lb{width:74px;font-size:12.5px;color:var(--text-2);flex:none;text-align:right}
.fn-bar{height:30px;border-radius:7px;background:linear-gradient(90deg,rgba(59,130,246,.85),rgba(34,211,238,.55));display:flex;align-items:center;padding-left:11px;font-size:12px;font-weight:600;color:#fff;transition:width .5s;min-width:36px}
.fn-val{font-size:12px;color:var(--muted);font-family:var(--mono);flex:none;width:92px}

/* ---------------- 其它 ---------------- */
.pill-row{display:flex;gap:8px;flex-wrap:wrap}
.hr{height:1px;background:var(--line);margin:16px 0}
.mini-chart{width:100%;display:block}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:5px}
.stat-line{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px dashed rgba(93,144,222,.12);font-size:12.5px}
.stat-line:last-child{border-bottom:none}
.stat-line .v{font-family:var(--mono);font-weight:600;color:#fff}
.progress{height:7px;border-radius:7px;background:rgba(125,145,179,.18);overflow:hidden}
.progress i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,#3b82f6,#22d3ee)}
.toast-wrap{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:9px;align-items:center}
.toast{
  padding:10px 18px;border-radius:10px;font-size:13px;color:#fff;
  background:linear-gradient(135deg,rgba(19,40,76,.98),rgba(11,24,48,.98));
  border:1px solid var(--line-strong);box-shadow:var(--shadow);
  animation:toastIn .25s;display:flex;align-items:center;gap:8px;
}
.toast.ok{border-color:rgba(47,208,122,.45)}
.toast.err{border-color:rgba(255,95,109,.45)}
@keyframes toastIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}

.fade-up{animation:fadeUp .38s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
.nowrap{white-space:nowrap}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}
.mb0{margin-bottom:0}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}
.flex{display:flex}.ac{align-items:center}.jb{justify-content:space-between}.gap8{gap:8px}.gap12{gap:12px}
.tc{text-align:center}.tr{text-align:right}
