/* ============ ProcureWork · 采购智能体 ============ */
:root{
    --primary-blue:#0ea5e9;
    --dark-blue:#0284c7;
    --bg-blue:#f0f9ff;
    --border-blue:#bae6fd;
    --text-main:#1e293b;
    --text-muted:#64748b;
    --line:#e2e8f0;
    --line-soft:#f1f5f9;
    --radius:12px;
    --shadow-sm:0 2px 4px rgba(0,0,0,.02);
    --shadow:0 10px 30px rgba(0,0,0,.05);
}

*{margin:0;padding:0;box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;}
body{display:flex;height:100vh;background:linear-gradient(135deg,#e0f2fe 0%,#f0f9ff 100%);color:var(--text-main);overflow:hidden;}
button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;outline:none}
svg{flex:none}
/* 通用线性图标：与文字混排时垂直对齐 */
.ico{display:inline-block;vertical-align:-.14em;flex:none;line-height:1}
.caret{vertical-align:-.05em;transition:transform .2s;opacity:.7}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}
::-webkit-scrollbar-track{background:transparent}

/* ---------------- 左侧边栏 ---------------- */
.sidebar{width:260px;flex:none;background:#ffffff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;padding:16px;}
.logo-area{display:flex;align-items:center;gap:8px;font-weight:bold;font-size:18px;color:var(--text-main);margin-bottom:20px;line-height:1.3;}
.logo-icon{width:32px;height:32px;background:var(--primary-blue);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;}
.logo-sub{font-size:12px;font-weight:normal;color:var(--text-muted);}

.new-chat-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;
  background:var(--bg-blue);color:var(--dark-blue);border:1px solid var(--border-blue);border-radius:8px;font-weight:500;transition:.2s;}
.new-chat-btn:hover{background:#e0f2fe;}
.new-chat-btn span{font-size:16px;line-height:1}

.history-section{margin-top:24px;flex:1;overflow-y:auto;min-height:0;}
.history-title{font-size:12px;color:var(--text-muted);margin-bottom:8px;display:flex;align-items:center;gap:5px;}
.history-list{display:flex;flex-direction:column;}
.history-item{padding:10px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text-main);margin-bottom:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:7px;}
.history-item:hover{background:#f8fafc;}
.history-item.active{background:var(--bg-blue);color:var(--dark-blue);font-weight:500;}
.history-item .hi-del{margin-left:auto;opacity:0;color:var(--text-muted);font-size:12px;padding:2px 4px;border-radius:4px;display:inline-flex;align-items:center}
.history-item:hover .hi-del{opacity:1}
.history-item .hi-del:hover{color:#dc2626;background:#fef2f2}

.sidebar-footer{border-top:1px solid #e2e8f0;padding-top:16px;display:flex;flex-direction:column;gap:8px;
  max-height:44vh;overflow-y:auto;scrollbar-width:none;}
.sidebar-footer::-webkit-scrollbar{display:none}
.promo-item{display:flex;justify-content:space-between;align-items:center;padding:10px 8px;background:#f8fafc;border-radius:6px;font-size:13px;cursor:pointer;transition:.2s;}
.promo-item:hover{background:#f1f5f9;}
.promo-btn{background:var(--primary-blue);color:#fff;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:500;}
.promo-item>span:first-child{display:inline-flex;align-items:center;gap:8px;min-width:0}
.promo-item>span:first-child .ico{color:var(--primary-blue)}
.promo-link{color:var(--primary-blue);font-size:12px;display:inline-flex;align-items:center;gap:2px}
.promo-item:hover .promo-link .caret{transform:translateY(1px)}

/* ---------------- 主内容区 ---------------- */
.main-content{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;padding:40px 20px 24px;overflow:hidden;min-width:0;}
.bg-decoration{position:absolute;right:0;bottom:0;width:400px;height:400px;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 0 Q 100 50 50 100 Q 0 50 50 0" fill="%230ea5e9" opacity="0.05"/></svg>') no-repeat center;
  pointer-events:none;z-index:0;}

.view{display:none;width:100%;max-width:820px;flex-direction:column;flex:1;min-height:0;position:relative;z-index:1;}
.view.active{display:flex}
.view-chat{align-items:center}

/* 欢迎区 */
.welcome{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;flex:none;}
.welcome.hidden{display:none}
.welcome-header{margin-top:40px;margin-bottom:30px;}
.welcome-header h1{font-size:32px;color:var(--text-main);margin-bottom:12px;letter-spacing:2px;}
.welcome-header p{color:var(--text-muted);font-size:16px;line-height:1.6;}

/* 功能板件：单行常用 + 更多折叠 */
.quick-bar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;max-width:820px;width:100%;
  margin-bottom:12px;overflow-x:auto;padding:2px;scrollbar-width:none;}
.quick-bar::-webkit-scrollbar{display:none}
.quick-actions{display:flex;flex-wrap:nowrap;gap:8px;justify-content:center;align-items:center;}
.action-tag{display:flex;align-items:center;gap:6px;padding:7px 14px;background:rgba(255,255,255,.8);border:1px solid #e2e8f0;
  border-radius:20px;font-size:13.5px;color:var(--text-main);cursor:pointer;transition:.2s;box-shadow:0 2px 4px rgba(0,0,0,.02);white-space:nowrap;}
.action-tag:hover{border-color:var(--primary-blue);color:var(--dark-blue);background:#fff;box-shadow:0 4px 12px rgba(14,165,233,.12);}
.action-tag.on{border-color:var(--primary-blue);background:var(--bg-blue);color:var(--dark-blue);font-weight:500;}
.action-tag.more{color:var(--text-muted);background:rgba(255,255,255,.6);flex:none}
.action-tag.more .caret{transition:.2s;display:inline-block}
.action-tag.more.open{border-color:var(--primary-blue);color:var(--dark-blue);background:var(--bg-blue)}
.action-tag.more.open .caret{transform:rotate(180deg)}
.more-panel{flex-wrap:wrap;max-width:820px;margin-bottom:4px;display:none;}
.more-panel.open{display:flex;animation:fade .22s ease}

/* 后台管理入口（默认隐藏，#admin 进入） */
.admin-entry[hidden]{display:none}
.admin-entry{background:#f1f5f9}

/* 消息区 */
.chat-scroll{width:100%;flex:1;overflow-y:auto;padding:8px 2px 18px;min-height:0;}
.chat-inner{display:flex;flex-direction:column;}
.msg{display:flex;gap:12px;margin-bottom:22px;animation:fade .28s ease;width:100%;}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.msg-user{flex-direction:row-reverse}
.msg-avatar{width:30px;height:30px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:600;background:linear-gradient(135deg,#38bdf8,#0284c7);}
.msg-user .msg-avatar{background:linear-gradient(135deg,#64748b,#334155);}
.msg-main{max-width:calc(100% - 46px);min-width:0}
.msg-user .msg-main{display:flex;flex-direction:column;align-items:flex-end}
.msg-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.msg-user .msg-head{flex-direction:row-reverse}
.msg-name{font-size:13px;font-weight:600;color:var(--text-main)}
.msg-time{font-size:11px;color:var(--text-muted)}
.msg-body{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;box-shadow:0 2px 4px rgba(0,0,0,.02);font-size:14px;}
.msg-ai .msg-body{border-radius:4px 14px 14px 14px}
.msg-user .msg-body{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff;border-radius:14px 4px 14px 14px;max-width:82%;box-shadow:0 4px 12px rgba(14,165,233,.18);}

.call-tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--dark-blue);background:var(--bg-blue);
  border:1px solid var(--border-blue);padding:3px 10px;border-radius:20px;margin-bottom:8px;}
.call-tag .dot{width:5px;height:5px;border-radius:50%;background:var(--primary-blue)}

.think-box{border:1px dashed var(--border-blue);background:#f8fdff;border-radius:10px;padding:9px 12px;margin-bottom:9px;}
.think-head{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dark-blue);font-weight:600;cursor:pointer}
.think-head svg{transition:.2s}
.think-box.open .think-head svg{transform:rotate(90deg)}
.think-content{display:none;margin-top:7px;font-size:12.5px;color:var(--text-muted);line-height:1.85;border-left:2px solid var(--border-blue);padding-left:10px;}
.think-box.open .think-content{display:block}

.msg-actions{display:flex;gap:6px;margin-top:8px;opacity:0;transition:.15s}
.msg:hover .msg-actions{opacity:1}
.msg-action{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text-muted);padding:4px 8px;border-radius:6px;border:1px solid transparent;}
.msg-action:hover{background:#fff;border-color:var(--line);color:var(--dark-blue)}

.typing{display:inline-flex;gap:4px;align-items:center}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--primary-blue);animation:blink 1.1s infinite}
.typing i:nth-child(2){animation-delay:.18s}
.typing i:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}

/* 输入卡片 */
.chat-input-container{width:100%;max-width:800px;background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.05);
  padding:16px;border:1px solid #e2e8f0;position:relative;flex:none;}
.chat-input-container textarea{width:100%;border:none;outline:none;resize:none;font-size:16px;min-height:80px;max-height:180px;color:var(--text-main);background:transparent;line-height:1.6;}
.chat-input-container textarea::placeholder{color:#94a3b8}

.input-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:12px;border-top:1px solid #f1f5f9;padding-top:12px;gap:10px;flex-wrap:wrap;}
.toolbar-left{display:flex;gap:8px;color:var(--text-muted);font-size:14px;align-items:center;}
.toolbar-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;transition:.15s;}
.toolbar-btn:hover{background:#f1f5f9;color:var(--dark-blue)}
.toolbar-btn.sym{font-size:15px;font-weight:600}
.agent-pill{font-size:12px;color:var(--dark-blue);background:var(--bg-blue);border:1px solid var(--border-blue);padding:3px 10px;border-radius:12px;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:5px;}
.agent-pill .ico{color:var(--primary-blue)}
.agent-pill:hover{background:#e0f2fe}

.toolbar-right{display:flex;align-items:center;gap:12px;}
.model-select{font-size:12px;color:var(--text-muted);background:#f8fafc;padding:4px 8px;border-radius:12px;cursor:pointer;position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}
.model-select:hover{background:#f1f5f9;color:var(--dark-blue)}
.model-menu{display:none;position:absolute;bottom:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.1);padding:5px;min-width:200px;z-index:20;text-align:left;}
.model-menu.open{display:block}
.model-opt{display:block;width:100%;text-align:left;padding:7px 10px;border-radius:7px;font-size:12.5px;color:var(--text-main);}
.model-opt:hover{background:var(--bg-blue);color:var(--dark-blue)}
.model-opt.on{color:var(--dark-blue);font-weight:600;background:var(--bg-blue)}
.model-opt small{display:block;color:var(--text-muted);font-size:10.5px;font-weight:400}

.send-btn{width:36px;height:36px;border-radius:50%;background:var(--primary-blue);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.2s;font-size:16px;line-height:1;}
.send-btn:hover{background:var(--dark-blue);transform:scale(1.05)}
.send-btn.stop{background:#475569}

/* 斜杠指令菜单 */
.slash-menu{display:none;position:absolute;left:16px;bottom:calc(100% + 8px);width:380px;max-width:calc(100% - 32px);background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.1);padding:6px;z-index:20;}
.slash-menu.open{display:block}
.slash-head{font-size:11px;color:var(--text-muted);padding:6px 10px;}
.slash-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--text-main);}
.slash-item:hover{background:var(--bg-blue);color:var(--dark-blue)}
.slash-item .si-em{width:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--primary-blue)}
.slash-item small{color:var(--text-muted);font-size:11px;margin-left:auto}

.bottom-hints{display:flex;gap:20px;margin-top:16px;font-size:12px;color:var(--text-muted);flex:none;}
.bottom-hints span{cursor:pointer;padding:2px 8px;border-radius:12px;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.bottom-hints span:hover{background:rgba(255,255,255,.75);color:var(--dark-blue)}

/* ---------------- 管理页面 ---------------- */
.page{width:100%;overflow-y:auto;padding-bottom:20px;}
.page-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.page-head h2{font-size:20px;font-weight:700;color:var(--text-main);display:inline-flex;align-items:center;gap:8px}
.page-head p{font-size:13px;color:var(--text-muted);margin-top:4px;width:100%}
.back-btn{margin-left:auto;align-self:center;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:18px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;}
.panel-title{font-size:13.5px;font-weight:700;color:var(--text-main);display:inline-flex;align-items:center;gap:7px}
.panel-title .ico{color:var(--primary-blue)}
.panel-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.btn-primary{background:var(--primary-blue);color:#fff;font-size:12.5px;font-weight:500;padding:6px 13px;border-radius:8px;transition:.15s;}
.btn-primary:hover{background:var(--dark-blue)}
.btn-ghost{border:1px solid var(--line);background:#fff;font-size:12.3px;padding:5px 11px;border-radius:8px;color:var(--text-muted);transition:.15s;}
.btn-ghost:hover{border-color:var(--border-blue);color:var(--dark-blue);background:var(--bg-blue)}
.mini-select,.mini-input{border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:12.3px;background:#fff;color:var(--text-main)}
.mini-input{width:170px}
.mini-select:focus,.mini-input:focus{border-color:var(--primary-blue)}

.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:12.8px}
.table th{text-align:left;font-weight:600;color:var(--text-muted);font-size:11.8px;padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.table td{padding:11px 14px;border-bottom:1px solid var(--line-soft);color:var(--text-main);vertical-align:middle}
.table tbody tr:hover{background:#f8fdff}
.table tbody tr:last-child td{border-bottom:none}
.cell-user{display:flex;align-items:center;gap:9px}
.cell-user .avatar{width:28px;height:28px;font-size:11.5px;border-radius:8px;background:linear-gradient(135deg,#38bdf8,#0284c7);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.cell-user b{font-weight:600;display:block;font-size:12.8px}
.cell-user span{font-size:11px;color:var(--text-muted)}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:20px;font-weight:500;white-space:nowrap}
.tag .ico{opacity:.85}
.tag-blue{background:var(--bg-blue);color:var(--dark-blue)}
.tag-gray{background:#f1f5f9;color:var(--text-muted)}
.tag-green{background:#ecfdf5;color:#16a34a}
.tag-amber{background:#fffbeb;color:#d97706}
.tag-red{background:#fef2f2;color:#dc2626}
.bar{width:88px;height:5px;border-radius:3px;background:#f1f5f9;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:7px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#38bdf8,#0284c7);border-radius:3px}
.row-actions{display:flex;gap:5px}
.row-btn{font-size:11.5px;color:var(--dark-blue);padding:3px 7px;border-radius:6px;display:inline-flex;align-items:center;gap:3px}
.row-btn:hover{background:var(--bg-blue)}
.row-btn.danger{color:#dc2626}
.row-btn.danger:hover{background:#fef2f2}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}
.stat .s-label{font-size:11.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.stat .s-value{font-size:22px;font-weight:700;color:var(--text-main);margin-top:5px;letter-spacing:.3px}
.stat .s-value small{font-size:12px;color:var(--text-muted);font-weight:500;margin-left:3px}
.stat .s-foot{font-size:11px;color:var(--text-muted);margin-top:3px}
.stat.accent{background:linear-gradient(135deg,#0ea5e9,#0369a1);border-color:transparent}
.stat.accent .s-label,.stat.accent .s-foot{color:rgba(255,255,255,.8)}
.stat.accent .s-value{color:#fff}

.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:13px;padding-bottom:20px}
.agent-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px;box-shadow:var(--shadow-sm);transition:.16s;cursor:pointer;display:flex;flex-direction:column}
.agent-card:hover{border-color:var(--primary-blue);box-shadow:0 4px 14px rgba(14,165,233,.14);transform:translateY(-2px)}
.ac-top{display:flex;align-items:flex-start;gap:11px}
.ac-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--bg-blue);border:1px solid var(--border-blue)}
.ac-name{font-size:14px;font-weight:700;color:var(--text-main)}
.ac-cat{font-size:11px;color:var(--text-muted);margin-top:1px}
.ac-desc{font-size:12.4px;color:var(--text-muted);line-height:1.75;margin-top:10px;flex:1}
.ac-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.ac-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft)}
.ac-use{font-size:11.5px;color:var(--text-muted)}
.ac-btn{font-size:12px;font-weight:600;color:var(--dark-blue);display:inline-flex;align-items:center;gap:2px}
.agent-card:hover .ac-btn .ico{transform:translateX(2px)}
.ac-btn .ico{transition:transform .18s}

.plan-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-bottom:20px}
.plan{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);position:relative;display:flex;flex-direction:column}
.plan-join{margin-top:14px;width:100%;padding:8px;font-size:12.4px;font-weight:600;border-radius:8px;
  border:1px solid var(--border-blue);color:var(--dark-blue);background:var(--bg-blue);transition:.15s;
  display:flex;align-items:center;justify-content:center;gap:6px}
.plan-join:hover{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff}
.plan.hot .plan-join{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff}
.plan.hot .plan-join:hover{background:var(--dark-blue)}
.plan.hot{border-color:var(--primary-blue);box-shadow:0 6px 22px rgba(14,165,233,.14)}
.plan .p-badge{position:absolute;top:-9px;right:12px;font-size:10.5px;background:var(--primary-blue);color:#fff;padding:2px 8px;border-radius:20px;font-weight:500}
.plan h4{font-size:14px;font-weight:700;color:var(--text-main)}
.plan .p-price{font-size:20px;font-weight:700;color:var(--dark-blue);margin:6px 0 10px}
.plan .p-price small{font-size:11.5px;color:var(--text-muted);font-weight:500}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.plan li{font-size:12.2px;color:var(--text-muted);display:flex;gap:7px;align-items:flex-start}
.plan li svg{color:var(--primary-blue);margin-top:3px}
.plan li .ico{color:var(--primary-blue);margin-top:3px}

/* ---------------- 舆情 / 标讯 ---------------- */
.info-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--border-blue);
  border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.info-bar .ib-label{font-size:12.5px;color:var(--text-muted)}
.info-bar .ib-role{font-size:13px;font-weight:700;color:var(--dark-blue);display:inline-flex;align-items:center;gap:5px}
.info-bar .ib-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.info-bar .ib-tag{font-size:11.5px;background:var(--bg-blue);color:var(--dark-blue);border:1px solid var(--border-blue);
  padding:2px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:3px}
.info-bar .ib-btn{margin-left:auto;font-size:12px;color:var(--dark-blue);border:1px solid var(--border-blue);
  background:var(--bg-blue);padding:5px 12px;border-radius:8px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.info-bar .ib-btn:hover{background:#e0f2fe}

.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filter-chip{font-size:12.3px;padding:5px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--text-muted);cursor:pointer;transition:.15s}
.filter-chip:hover{border-color:var(--border-blue);color:var(--dark-blue)}
.filter-chip.on{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff;font-weight:500}

.news-list{display:flex;flex-direction:column;gap:12px;padding-bottom:20px}
.news-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow-sm);transition:.16s}
.news-card:hover{border-color:var(--primary-blue);box-shadow:0 4px 14px rgba(14,165,233,.12)}
.nc-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.nc-title{font-size:14.5px;font-weight:700;color:var(--text-main);line-height:1.55}
.nc-hot{font-size:10.5px;background:#fef2f2;color:#dc2626;padding:2px 7px;border-radius:4px;font-weight:600}
.nc-sum{font-size:12.8px;color:var(--text-muted);line-height:1.85;margin-top:6px}
.nc-why{font-size:12.3px;color:var(--dark-blue);background:var(--bg-blue);border-left:3px solid var(--primary-blue);
  padding:7px 11px;border-radius:0 8px 8px 0;margin-top:10px;line-height:1.7}
.nc-foot{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:11.5px;color:var(--text-muted);flex-wrap:wrap}
.nc-foot .nc-ask{margin-left:auto;color:var(--dark-blue);cursor:pointer;display:inline-flex;align-items:center;gap:2px}
.nc-foot .nc-ask:hover{text-decoration:underline}
.nc-foot .nc-ask .ico{transition:transform .18s}
.nc-foot .nc-ask:hover .ico{transform:translateX(2px)}

.bid-list{display:flex;flex-direction:column;gap:12px;padding-bottom:20px}
.bid-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow-sm);transition:.16s}
.bid-card:hover{border-color:var(--primary-blue);box-shadow:0 4px 14px rgba(14,165,233,.12)}
.bid-card.hit{border-left:3px solid var(--primary-blue)}
.bc-top{display:flex;align-items:flex-start;gap:12px}
.bc-title{font-size:14.5px;font-weight:700;color:var(--text-main);line-height:1.55;flex:1;min-width:0}
.bc-score{flex:none;text-align:center;min-width:56px}
.bc-score b{display:block;font-size:18px;color:var(--dark-blue);line-height:1.2}
.bc-score span{font-size:10.5px;color:var(--text-muted)}
.bc-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.3px;color:var(--text-muted);margin-top:9px}
.bc-meta b{color:var(--text-main);font-weight:600}
.bc-foot{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap}
.bc-hit{font-size:11px;background:var(--bg-blue);color:var(--dark-blue);border:1px solid var(--border-blue);padding:2px 9px;border-radius:20px}
.bc-act{margin-left:auto;display:flex;gap:6px}
/* ---------------- 用户注册 ---------------- */
.reg-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:start;padding-bottom:20px;}
.reg-card{min-width:0}
.reg-body{padding:16px 18px 18px}
.code-row{display:flex;gap:8px;align-items:stretch}
.code-row input{flex:1;min-width:0;letter-spacing:3px}
.code-row button{flex:none;width:118px;border-color:var(--border-blue);color:var(--dark-blue);background:var(--bg-blue);font-size:12.5px;border-radius:9px;transition:.15s;
  display:flex;align-items:center;justify-content:center;gap:5px}
.code-row button:hover:not(:disabled){background:#e0f2fe}
.code-row button:disabled{color:var(--text-muted);background:#f1f5f9;border-color:var(--line);cursor:not-allowed}
.hint{font-size:11.6px;color:var(--text-muted);margin-top:6px;line-height:1.7}
.hint.ok{color:#16a34a}
.hint.err{color:#dc2626}
.cat-note{font-size:11.8px;color:var(--dark-blue);background:var(--bg-blue);border-left:3px solid var(--primary-blue);
  padding:7px 11px;border-radius:0 8px 8px 0;margin-top:-5px;line-height:1.75}
.agree{display:flex;align-items:flex-start;gap:8px;font-size:12.3px;color:var(--text-muted);line-height:1.8;margin:14px 0 14px;cursor:pointer}
.agree input{margin-top:3px;accent-color:var(--primary-blue)}
.agree b{color:var(--dark-blue);font-weight:600}
.reg-submit{width:100%;padding:10px;font-size:13.5px;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:7px}
.reg-submit:disabled{background:#94a3b8;cursor:not-allowed}
.reg-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.reg-benefit{list-style:none;padding:14px 16px 16px;display:flex;flex-direction:column;gap:9px}
.reg-benefit li{font-size:12.6px;color:var(--text-muted);line-height:1.75;display:flex;gap:8px;align-items:flex-start}
.reg-benefit li svg{color:var(--primary-blue);margin-top:3px;flex:none}
.reg-benefit li .ico{color:var(--primary-blue);margin-top:3px;flex:none}
.reg-benefit b{color:var(--text-main);font-weight:600}
.reg-users{padding:8px 6px 12px;max-height:280px;overflow-y:auto}
.reg-user{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px}
.reg-user:hover{background:#f8fdff}
.reg-user .ru-av{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#38bdf8,#0284c7);color:#fff;font-size:12px;font-weight:600}
.reg-user .ru-main{flex:1;min-width:0}
.reg-user .ru-name{font-size:12.8px;font-weight:600;color:var(--text-main);display:flex;align-items:center;gap:6px}
.reg-user .ru-sub{font-size:11px;color:var(--text-muted);margin-top:2px}
.reg-user .ru-del{opacity:0;color:var(--text-muted);font-size:11.5px;padding:3px 6px;border-radius:6px;display:inline-flex;align-items:center}
.reg-user:hover .ru-del{opacity:1}
.reg-user .ru-del:hover{color:#dc2626;background:#fef2f2}
.reg-empty{text-align:center;color:var(--text-muted);font-size:12.3px;padding:22px 0}
.reg-done{text-align:center;padding:14px 6px 8px}
.reg-done .rd-icon{width:56px;height:56px;border-radius:50%;background:#ecfdf5;color:#16a34a;display:flex;align-items:center;
  justify-content:center;margin:0 auto 12px;font-size:26px}
.reg-done h3{font-size:16px;color:var(--text-main);font-weight:700}
.reg-done p{font-size:12.6px;color:var(--text-muted);margin-top:6px;line-height:1.8}
.reg-info{margin:16px 0 4px;border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}
.reg-info .ri-row{display:flex;font-size:12.6px;border-bottom:1px solid var(--line-soft)}
.reg-info .ri-row:last-child{border-bottom:none}
.reg-info .ri-k{width:96px;flex:none;padding:9px 12px;background:#f8fafc;color:var(--text-muted)}
.reg-info .ri-v{padding:9px 12px;color:var(--text-main);flex:1;min-width:0}
.reg-done-acts{display:flex;gap:8px;margin-top:16px}
.reg-done-acts button{flex:1;padding:9px;font-size:12.8px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:5px}

/* ---------------- 后台管理 Tab / 加入会员 ---------------- */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px}
.tab-item{font-size:12.8px;color:var(--text-muted);padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;
  border:1px solid transparent;border-bottom:none;margin-bottom:-1px;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.tab-item .ico{opacity:.8}
.tab-item.on .ico{opacity:1;color:var(--primary-blue)}
.tab-item:hover{color:var(--dark-blue);background:var(--bg-blue)}
.tab-item.on{color:var(--dark-blue);font-weight:600;background:#fff;border-color:var(--line);border-bottom:1px solid #fff}
.tab-pane[hidden]{display:none}
.join-cta{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--border-blue);border-radius:var(--radius);
  padding:16px 18px;box-shadow:var(--shadow-sm);margin-bottom:12px}
.jc-text{flex:1;min-width:0}
.jc-title{font-size:14px;font-weight:700;color:var(--text-main)}
.jc-sub{font-size:12.6px;color:var(--text-muted);line-height:1.85;margin-top:5px}
.jc-btn{flex:none;padding:11px 26px;font-size:13.5px;font-weight:600;border-radius:10px;display:inline-flex;align-items:center;gap:7px}
.join-note{font-size:11.8px;color:var(--text-muted);text-align:center;padding-bottom:20px}
.plan-pick{display:flex;flex-direction:column;gap:9px}
.plan-opt{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;transition:.15s}
.plan-opt:hover{border-color:var(--border-blue);background:var(--bg-blue)}
.plan-opt.on{border-color:var(--primary-blue);background:var(--bg-blue)}
.plan-opt .po-name{font-size:13.2px;font-weight:600;color:var(--text-main);min-width:66px}
.plan-opt .po-price{font-size:13px;color:var(--dark-blue);font-weight:600}
.plan-opt .po-items{font-size:11.6px;color:var(--text-muted);line-height:1.7}
.plan-opt .po-radio{margin-left:auto;width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none;position:relative}
.plan-opt.on .po-radio{border-color:var(--primary-blue)}
.plan-opt.on .po-radio::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--primary-blue)}

.empty-tip{text-align:center;color:var(--text-muted);font-size:13px;padding:34px 0}

/* ---------------- 弹窗 ---------------- */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal-mask.open{display:flex;animation:fade .18s ease}
.modal{width:520px;max-width:100%;max-height:86vh;background:#fff;border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line-soft)}
.modal-title{font-size:14.5px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px}
.modal-title .ico{color:var(--primary-blue)}
.icon-btn{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}
.icon-btn:hover{background:#f1f5f9;color:var(--dark-blue)}
.modal-body{padding:16px;overflow-y:auto}
.modal-foot{padding:12px 16px;border-top:1px solid var(--line-soft);display:flex;justify-content:flex-end;gap:8px}
.form-row{margin-bottom:13px}
.form-row label{display:block;font-size:12.2px;color:var(--text-main);margin-bottom:5px;font-weight:600}
.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:13px;background:#fff}
.form-row textarea{resize:vertical;min-height:74px;line-height:1.7}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--primary-blue)}
.form-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check-list{display:flex;flex-wrap:wrap;gap:7px}
.check-item{font-size:12px;padding:5px 10px;border-radius:18px;border:1px solid var(--line);color:var(--text-muted);cursor:pointer;transition:.14s}
.check-item.on{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff}

.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,14px);background:#1e293b;color:#fff;font-size:12.8px;padding:9px 18px;border-radius:22px;box-shadow:0 12px 30px rgba(0,0,0,.16);opacity:0;pointer-events:none;transition:.22s;z-index:200}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------------- Markdown ---------------- */
.md{font-size:14px;line-height:1.85;color:var(--text-main)}
.msg-user .md{color:#fff}
.md h1,.md h2,.md h3{font-size:15px;font-weight:700;color:var(--text-main);margin:15px 0 7px;line-height:1.5}
.md h3{font-size:14px}
.md h1:first-child,.md h2:first-child,.md h3:first-child{margin-top:0}
.md p{margin:7px 0}
.md ul,.md ol{margin:7px 0;padding-left:20px}
.md li{margin:3px 0}
.md strong{font-weight:700;color:var(--dark-blue)}
.msg-user .md strong{color:#fff}
.md code{background:#f1f5f9;border-radius:5px;padding:1px 5px;font-size:12.5px;font-family:Consolas,Menlo,monospace;color:var(--dark-blue)}
.md pre{background:#0f172a;border-radius:10px;padding:12px 14px;overflow-x:auto;margin:10px 0}
.md pre code{background:none;color:#cbd5e1;padding:0;font-size:12.3px;line-height:1.7}
.md blockquote{border-left:3px solid var(--border-blue);background:var(--bg-blue);padding:8px 12px;margin:9px 0;border-radius:0 8px 8px 0;color:var(--text-main);font-size:13px}
.md table{width:100%;border-collapse:collapse;margin:10px 0;font-size:12.6px}
.md th,.md td{border:1px solid var(--line);padding:7px 10px;text-align:left}
.md th{background:#f8fafc;font-weight:600;color:var(--text-main)}
.md hr{border:none;border-top:1px solid var(--line);margin:13px 0}

/* 智能体输出增强：链接 / 脚注 / 章节标签 */
.msg-user .md a.md-link{color:#e0f2fe;border-bottom-color:rgba(255,255,255,.5)}
.md a.md-link{color:var(--dark-blue);text-decoration:none;border-bottom:1px solid var(--border-blue);transition:border-color .15s}
.md a.md-link:hover{border-bottom-color:var(--dark-blue)}
.md sup.md-fn{font-size:10.5px;line-height:1;vertical-align:super;margin:0 1px}
.md sup.md-fn a{color:var(--primary-blue);text-decoration:none;font-weight:600;padding:0 1px}
.md sup.md-fn a:hover{text-decoration:underline}
.md-sec{display:inline-block;margin:14px 0 6px;padding:2px 10px;border-radius:6px;
  background:var(--bg-blue);border:1px solid var(--border-blue);
  color:var(--dark-blue);font-size:12.5px;font-weight:700;line-height:1.7}
.md-sec:first-child{margin-top:0}
.md-tag{color:var(--dark-blue);font-weight:700}
.md-notes{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line);font-size:12.2px;color:var(--text-muted);line-height:1.7}
.md-notes-title{font-weight:600;color:var(--text-muted);margin-bottom:4px}
.md-notes ol{margin:0;padding-left:18px}
.md-notes li{margin:4px 0;word-break:break-word}
.md-notes a.md-link{font-size:12.2px}

/* ---------------- 响应式 ---------------- */
@media (max-width:900px){
  .sidebar{width:220px;padding:12px}
  .welcome-header h1{font-size:26px;letter-spacing:1px}
  .stat-row,.plan-row{grid-template-columns:repeat(2,1fr)}
  .reg-wrap{grid-template-columns:1fr}
}
@media (max-width:680px){
  body{overflow:auto}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 10px 30px rgba(0,0,0,.12)}
  .sidebar.open{transform:none}
  .main-content{padding:24px 14px}
  .stat-row,.plan-row{grid-template-columns:1fr}
  .quick-actions{gap:8px}
  .action-tag{font-size:13px;padding:7px 12px}
  .toolbar-left .agent-pill{display:none}
}
