:root{
  /* 超赞文化 VIS：主色 #E94709，辅助色 #395478 / #231815 / #EFEFEF */
  --blue:#e94709; --blue-dark:#c2380a; --blue-bg:#fdece3; --blue-bg2:#fff6f1;
  --slate:#395478; --slate-deep:#33496a;
  --text:#231815; --text2:#5a6472; --text3:#9aa3af;
  --bg:#f6f5f3; --card:#fff; --line:#eae7e3;
  --green:#17b26a; --green-bg:#e6f9f0; --orange:#d97706; --orange-bg:#fdf1de;
  --red:#b42318; --red-bg:#fdecea;
  --radius:10px; --shadow:0 1px 3px rgba(57,84,120,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font:14px/1.55 "Source Han Sans CN","Noto Sans SC","Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--text);background:var(--bg)}
#app{display:flex;height:100vh;overflow:hidden}
button{font-family:inherit;cursor:pointer}
body{zoom:1.06}
select,input{font-family:inherit;font-size:13px;color:var(--text)}
.hidden{display:none!important}
input::placeholder,textarea::placeholder{color:var(--text3);opacity:1}

/* ---------- 侧栏（VIS 辅助色 slate #395478） ---------- */
#sidebar{width:216px;min-width:216px;background:linear-gradient(180deg,#40597e,var(--slate) 45%,var(--slate-deep));border-right:none;display:flex;flex-direction:column;color:#fff}
.logo{display:flex;align-items:center;gap:8px;padding:12px 10px 10px 10px}
.logo-icon{flex:none;filter:drop-shadow(0 2px 6px rgba(233,71,9,.45))}
.logo-icon img{display:block;height:38px;width:auto}
.logo-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.logo-text b{font-size:14px;color:#fff;white-space:nowrap}
.logo-text span{font-size:10px;color:rgba(255,255,255,.55);white-space:nowrap;margin-top:2px;align-self:center}
#nav{flex:1;padding:6px 10px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:rgba(255,255,255,.72);cursor:pointer;margin-bottom:2px;user-select:none}
.nav-item svg{width:17px;height:17px;flex:none}
.nav-item:hover{background:rgba(255,255,255,.1);color:#fff}
.nav-item.active{background:var(--blue);color:#fff;font-weight:600;box-shadow:0 3px 10px rgba(233,71,9,.35)}
.nav-item .soon{margin-left:auto;font-size:10px;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:0 4px}
.side-bottom{border-top:1px solid rgba(255,255,255,.16);padding:12px 14px 14px}
.conn{display:flex;align-items:center;gap:7px;font-weight:600;color:#fff}
.conn i{width:8px;height:8px;border-radius:50%;background:var(--green)}
.conn i.off{background:#ff8a7a}
.conn .conn-caret{margin-left:auto;color:rgba(255,255,255,.5)}
.conn-summary{font-size:12px;color:rgba(255,255,255,.62);margin:6px 0 8px}
.lan-row{display:flex;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,.62);margin:0 0 8px;padding:6px 8px;border-radius:8px;cursor:pointer;border:1px dashed rgba(255,255,255,.28)}
.lan-row:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}
.lan-row i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4);flex:none}
.lan-row.lan-ok i{background:#34d399}
.lan-row.lan-warn i{background:#fbbf24}
.lan-row .lan-txt{flex:1;min-width:0;word-break:break-all}
.lan-row b{font-weight:600;color:#ffb08e;flex:none}
.lan-row.lan-plain{cursor:default;border-style:solid}
.lan-row.lan-plain:hover{background:none;border-color:rgba(255,255,255,.28)}
.shop-list{display:flex;flex-direction:column;gap:8px}
.shop-row{display:flex;align-items:center;gap:8px;font-size:12px}
.shop-row .s-ic{width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;flex:none}
.shop-row .s-name{color:rgba(255,255,255,.88)}
.shop-row .s-cnt{display:block;font-size:11px;color:rgba(255,255,255,.5)}

/* ---------- 顶栏 ---------- */
#main{flex:1;display:flex;flex-direction:column;min-width:0}
#topbar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line)}
.f-select{border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:#fff;min-width:120px}
.f-date{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:#fff}
.f-date input{border:none;outline:none;font-size:13px;background:transparent}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:16px}
.bell{position:relative;border:none;background:none;padding:4px}
.badge{position:absolute;top:-2px;right:-4px;background:var(--red);color:#fff;font-size:10px;border-radius:8px;padding:0 4px;line-height:14px}
.user{display:flex;align-items:center;gap:8px;font-size:13px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--blue-bg);display:flex;align-items:center;justify-content:center}

/* ---------- 视图 ---------- */
#view{flex:1;overflow-y:auto;padding:20px 22px 40px}
.page-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.page-head .p-ic{width:38px;height:38px;border-radius:10px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none}
.page-head h2{font-size:19px;margin-bottom:2px}
.page-head .desc{color:var(--text2);font-size:13px}
.page-head .actions{margin-left:auto;display:flex;gap:10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 14px;font-size:13px;color:var(--text)}
.btn:hover{border-color:var(--blue);color:var(--blue)}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark);color:#fff}
.btn-sm{padding:4px 10px;font-size:12px;border-radius:6px}
.btn-danger{color:var(--red);border-color:#f3c5c0;background:#fff}
.btn-danger:hover{background:var(--red-bg)}
.search{border:1px solid var(--line);border-radius:8px;padding:7px 12px;min-width:260px;background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14"><path d="M10 4a6 6 0 1 0 3.9 10.6l4.4 4.4 1.4-1.4-4.4-4.4A6 6 0 0 0 10 4zm0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8z" fill="%239aa3af"/></svg>') no-repeat 8px center;padding-left:28px}

/* 徽章 */
.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;border-radius:6px;padding:2px 8px;line-height:18px}
.tag-green{color:var(--green);background:var(--green-bg)}
.tag-orange{color:var(--orange);background:var(--orange-bg)}
.tag-red{color:var(--red);background:var(--red-bg)}
.tag-blue{color:var(--blue);background:var(--blue-bg)}
.tag-gray{color:var(--text2);background:#f1efec}
.tag-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

/* 表格 */
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--text2);font-weight:500;background:#f8f7f5;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid #f1efec;white-space:nowrap}
.tbl tr:hover td{background:var(--blue-bg2)}
.tbl .num{font-variant-numeric:tabular-nums}
.tbl .ell{display:inline-block;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.tbl-compact{font-size:12.5px}
.tbl-compact th,.tbl-compact td{padding-left:6px;padding-right:6px}
.tbl-compact .btn{padding:4px 7px}
.al-order{white-space:nowrap}
.tbl-scroll{overflow:auto;max-height:none;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#c4ccd8 transparent}
.tbl-scroll::-webkit-scrollbar{width:12px;height:12px}
.tbl-scroll::-webkit-scrollbar-track{background:#f1efec;border-radius:8px;margin:2px}
.tbl-scroll::-webkit-scrollbar-thumb{background:#c4ccd8;border-radius:8px;border:3px solid #f1efec}
.tbl-scroll::-webkit-scrollbar-thumb:hover{background:var(--slate)}
.tbl-scroll thead th{position:sticky;top:0;z-index:2}
.link{color:var(--blue);cursor:pointer}
.link:hover{text-decoration:underline}

/* 统计卡 */
.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}
.stat{display:flex;align-items:center;gap:12px;padding:16px}
.stat .st-ic{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.stat .st-l{font-size:12px;color:var(--text2)}
.stat .st-v{font-size:20px;font-weight:700}
.stat .st-c{font-size:12px}
.up{color:var(--green)}.down{color:var(--red)}

/* 店铺分组卡（账户管理） */
.shop-card{margin-bottom:16px;padding:0 18px 6px}
.shop-card .sc-head{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px dashed var(--line)}
.shop-card .sc-head .s-ic{width:30px;height:30px;border-radius:8px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:700}
.shop-card .sc-head b{font-size:15px}
.shop-card .sc-head .actions{margin-left:auto;display:flex;gap:10px;align-items:center}
.shop-card .sc-head .arrow{color:var(--text3)}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(15,30,60,.45);display:flex;align-items:center;justify-content:center;z-index:100}
.modal{background:#fff;border-radius:12px;width:640px;max-width:92vw;max-height:86vh;overflow-y:auto;box-shadow:0 10px 40px rgba(10,30,80,.2)}
.modal .m-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.modal .m-head b{font-size:16px}
.modal .m-close{margin-left:auto;border:none;background:none;font-size:18px;color:var(--text3)}
.modal .m-body{padding:18px 20px}
.modal .m-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}
.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:13px}
.kv .k{color:var(--text2)}
.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.form-row label{font-size:12px;color:var(--text2)}
.form-row input,.form-row select,.form-row textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}

.loading{color:var(--text3);padding:40px;text-align:center}
.placeholder-page{padding:60px;text-align:center;color:var(--text3)}
.placeholder-page .big{font-size:40px;margin-bottom:12px}
.gap-mark{color:var(--orange);font-size:11px;border:1px dashed var(--orange);border-radius:4px;padding:0 4px;margin-left:6px}
.src-note{font-size:11px;color:var(--text3);margin-top:10px}
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);background:#231815;color:#fff;border-radius:8px;padding:9px 18px;font-size:13px;z-index:200;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.toast.ok::before{content:"✓ ";color:#4ade80}
.toast.err::before{content:"✕ ";color:#f87171}

/* ---- 计划管理页 ---- */
.chips{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;border-radius:16px;padding:4px 14px;font-size:13px;cursor:pointer;color:var(--text2)}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.active{border-color:var(--blue);color:var(--blue);background:var(--blue-bg);font-weight:600}
.st-blue{background:var(--blue-bg);color:var(--blue)}
.st-green{background:var(--green-bg);color:var(--green)}
.st-gray{background:#f1efec;color:var(--text2)}
.st-orange{background:var(--orange-bg);color:var(--orange)}
.drawer{position:fixed;right:14px;top:56px;width:400px;max-height:64vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px rgba(10,30,80,.18);z-index:95;padding:14px}
.drawer h4{font-size:14px;margin-bottom:10px}
.ord-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:12px}
.ord-item .o-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ord-item .o-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.impact-box{background:#f8f7f5;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--text2);margin:12px 0}
.impact-box.warn{background:var(--red-bg);border-color:#f3b7ae;border-left:3px solid var(--red);color:#8a2519}
.impact-box.warn b{color:var(--red)}
.res-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}
.res-row:last-child{border-bottom:none}
.confirm-note{font-size:11px;color:var(--text3);margin-top:10px}

/* ---------- 任务5：报表与首页 ---------- */
.metric{padding:16px 18px;display:flex;flex-direction:column;gap:7px}
.m-top{display:flex;align-items:center;gap:8px}
.m-l{color:var(--text2);font-size:13px}
.m-v{font-size:22px;font-weight:700;letter-spacing:.2px}
.m-d{display:flex;align-items:center;gap:6px;font-size:12px}
.m-sub{color:var(--text3)}
.delta{font-weight:600;font-size:12px}
.delta.up{color:#12b76a}
.delta.down{color:var(--red)}
.delta.flat{color:var(--text3)}
.rp-bar{display:flex;align-items:center;gap:14px;padding:11px 16px;margin-bottom:14px;flex-wrap:wrap}
.rp-range{margin-left:auto;color:var(--text3);font-size:12px}
.card-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;margin-bottom:10px;flex-wrap:wrap;white-space:nowrap}
.card-title .ht-range{white-space:normal}
.card-title .btn,.card-title .tag,.card-title .link,.card-title .ht-ic{flex:none}
.card-title .f-select,.card-title .search{font-weight:400}
.legend{margin-left:auto;display:flex;align-items:center;gap:6px;font-weight:400;font-size:12px;color:var(--text2)}
.lg{display:inline-block}
.lg-bar{width:10px;height:10px;border-radius:2px;background:#e94709}
.lg-line{width:16px;height:3px;border-radius:2px;background:#12b76a}
.lg-gap{width:9px;height:9px;border-radius:50%;background:#395478}
.trend-wrap{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:18px;align-items:stretch}
.trend-svg{width:100%;height:auto}
.ch-x{font-size:10px;fill:#8a97ab}
.ch-y{font-size:10px;fill:#8a97ab}
.trend-right{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column;gap:2px}
.tr-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}
.tr-row span:first-child{color:var(--text2);width:52px}
.tr-row b{margin-left:auto;margin-right:8px}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start;margin-top:14px}
.home-side .card{margin-bottom:14px;padding:16px 18px}
.todo-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}
.todo-row:last-of-type{border-bottom:none}

/* ---------- 任务6：AI 智能对话 ---------- */
.chat-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}
.chat-side{padding:12px;position:sticky;top:70px;height:calc(100vh - 150px);min-height:480px;display:flex;flex-direction:column}
#ch-list{overflow-y:auto;margin:10px 0;flex:1}
.ch-item{padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text2);display:flex;align-items:center;gap:6px;margin-bottom:2px}
.ch-item:hover{background:#f1efec}
.ch-item.active{background:var(--blue-bg);color:var(--blue)}
.ch-item .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-item .ops{display:none;gap:6px}
.ch-item:hover .ops,.ch-item.active .ops{display:inline-flex}
.ch-item .ops span{color:var(--text3);font-size:12px}
.ch-item .ops span:hover{color:var(--blue)}
.ch-trash{border-top:1px solid var(--line);padding-top:10px;font-size:12px;color:var(--text3);cursor:pointer;text-align:center}
.ch-trash:hover{color:var(--blue)}
.chat-main{padding:0;display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:480px}
#ch-msgs{flex:1;overflow-y:auto;padding:18px;background:var(--bg2,#faf9f7)}
.msg{display:flex;margin-bottom:14px}
.msg.user{justify-content:flex-end}
.msg.bot{justify-content:flex-start}
.msg .bubble{max-width:74%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:break-word}
.msg.user .bubble{background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.msg.bot .bubble{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;box-shadow:var(--shadow)}
.msg .att-link{color:#ffe3d6}
.ch-steps{margin-top:8px;font-size:12px;border-top:1px dashed var(--line);padding-top:6px}
.ch-steps summary{cursor:pointer;color:var(--text3);outline:none}
.ch-step{display:flex;gap:6px;padding:3px 0;color:var(--text2);align-items:baseline}
.ch-step .ok{color:var(--green)}
.ch-step .no{color:var(--red)}
.ch-order{margin-top:10px;border:1px solid var(--line);background:#f8f7f5;border-radius:8px;padding:9px 12px;display:flex;align-items:center;gap:10px}
.ch-order .btn{margin-left:auto}
.ch-input{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--line);padding:12px;background:#fff}
.ch-input input[type=text],.ch-input textarea{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;outline:none;font:inherit;font-size:13px;line-height:1.6;resize:none}
.ch-input input[type=text]:focus,.ch-input textarea:focus{border-color:var(--blue)}
.ch-att{cursor:pointer;color:var(--text3);display:flex;align-items:center;padding:2px}
.ch-att:hover{color:var(--blue)}
.ch-atts{display:flex;gap:8px;padding:0 12px;flex-wrap:wrap;background:#fff}
.ch-atts:empty{display:none}
.ch-atts:not(:empty){padding:10px 12px 0}
.ch-atts .at{font-size:12px;background:var(--blue-bg);color:var(--blue);border-radius:6px;padding:3px 8px}
.ch-welcome{text-align:center;padding:48px 20px;color:var(--text2)}
.ch-welcome .big{margin-bottom:6px}
.ch-sugs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.ch-sugs .chip{cursor:pointer;background:#fff}
.form-row{margin-bottom:12px}
.form-row label{display:block;font-size:12px;color:var(--text2);margin-bottom:5px}
.form-row input,.form-row select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px}

/* ---------- 首页 2.0（看板 + AI 智投助手） ---------- */
.home2{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.home2 .card-title{font-size:15px}
.ht-ic{width:26px;height:26px;border-radius:7px;background:var(--blue-bg);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;flex:none}
.ht-ic svg{width:15px;height:15px}
.ht-range{margin-left:auto;font-size:12px;color:var(--text3);font-weight:400;flex:1 1 240px}
.hm-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.hm-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:5px}
.hm-card .m-v{font-size:19px}
.home2 .trend-wrap{grid-template-columns:minmax(0,1fr) 262px}
.donut-box{border-left:1px solid var(--line);padding-left:18px}
.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.donut-legend{width:100%}
.dl-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 0;color:var(--text2)}
.dl-row i{width:10px;height:10px;border-radius:3px;flex:none}
.dl-row b{margin-left:auto}
.ai-dock{display:flex;flex-direction:column;height:calc(100vh - 96px);min-height:520px;padding:0;position:sticky;top:14px}
.home2.docked{grid-template-columns:minmax(0,1fr);padding-right:56px}
.ai-collapse{border:1px solid var(--line);background:#fff;border-radius:8px;font:inherit;font-size:12px;color:var(--text3);padding:4px 10px;cursor:pointer}
.ai-rail{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;font:inherit;font-weight:600;color:#fff;background:var(--blue);border:none;border-radius:12px 0 0 12px;padding:12px 6px;cursor:pointer;box-shadow:-2px 4px 14px rgba(233,71,9,.28)}
.ai-rail:hover{background:var(--blue-dark);padding-right:10px}
.ai-rail .rail-ic{background:#fff;color:var(--blue);border-radius:7px;font-size:11px;font-weight:800;letter-spacing:0;padding:3px 6px}
.ai-rail .rail-tx{writing-mode:vertical-rl;letter-spacing:3px;font-size:12px}
.ai-snap{position:absolute;left:0;top:50%;transform:translate(-92%,-50%);width:20px;height:46px;border:1px solid var(--line);border-radius:10px 0 0 10px;background:#fff;color:var(--text3);font-size:17px;line-height:1;padding:0 0 2px 2px;cursor:pointer;box-shadow:-2px 2px 8px rgba(35,24,21,.08);z-index:5}
.ai-snap:hover{color:var(--blue);border-color:var(--blue)}
.ai-collapse:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg2)}
.ai-head{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.ai-head .desc{font-size:11px;color:var(--text3)}
.ai-ic{width:30px;height:30px;border-radius:8px;background:var(--blue);color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none}
.ai-msgs{flex:1;overflow-y:auto;padding:14px;background:#faf9f7}
.ai-msgs .msg .bubble{max-width:88%}
.ai-hello{font-size:13px;color:var(--text2);margin-bottom:10px}
.ai-sugs{display:flex;flex-direction:column;gap:8px}
.ai-sugs .chip{text-align:left;background:#fff;cursor:pointer}
.ai-input{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding:10px;background:#fff}
.ai-input input,.ai-input textarea{flex:1;border:1px solid var(--line);border-radius:8px;background:var(--blue-bg2);outline:none;font:inherit;font-size:13px;padding:8px 10px;min-width:0;resize:none;line-height:1.5}
.ai-input textarea:focus{border-color:var(--blue);background:#fff}
.ai-send{width:34px;height:34px;border-radius:50%;background:var(--blue);border:none;display:flex;align-items:center;justify-content:center;flex:none}
.ai-send:hover{background:var(--blue-dark)}
.ai-tbl{margin:8px 0;font-size:12px;white-space:normal}
.ai-tbl th{padding:6px 8px}
.ai-tbl td{padding:6px 8px}
.ai-acts{display:flex;gap:8px;margin-top:8px;white-space:normal}
.lg-tbl{margin:6px 0 0;font-size:12.5px;table-layout:fixed;width:100%}
.lg-tbl td{border:1px solid var(--line);vertical-align:top;padding:8px 10px}
.lg-tbl .lg-x{width:auto;word-break:break-word}
.lg-tbl .lg-g{width:84px;flex:none;font-weight:700;text-align:center;white-space:nowrap;font-size:12px}
.lg-tbl .lg-g-0{background:var(--blue-bg);color:var(--blue)}
.lg-tbl .lg-g-1{background:#eef2f7;color:#395478}
.lg-tbl .lg-g-2{background:#fef3e2;color:#d97706}
.lg-tbl .lg-g-3{background:#e7f6f1;color:#0f766e}
.lg-tbl .lg-g-4{background:#f1f0ee;color:var(--text3)}
.lg-txt{padding:3px 0;line-height:1.65;color:var(--text2)}
.lg-txt+.lg-txt{border-top:1px dashed var(--line)}
.lg-engine{margin-top:8px;font-size:11.5px;color:var(--text3);background:#faf9f7;border:1px dashed var(--line);border-radius:8px;padding:6px 10px}
/* AI 智能学习罗盘 */
.compass{background:linear-gradient(135deg,#ffffff 0%,#fff7f3 55%,#fdece3 100%);border:1px solid #f6d9cb;display:flex;gap:20px;align-items:center;flex-wrap:wrap;overflow:hidden;position:relative}
.compass::after{content:"";position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(233,71,9,.08),transparent 70%);pointer-events:none}
.cp-dial{width:178px;height:178px;flex:none}
.cp-spin-slow{transform-origin:100px 100px;animation:cp-spin 28s linear infinite}
.cp-spin-rev{transform-origin:100px 100px;animation:cp-spin 20s linear infinite reverse}
.cp-needle{transform-origin:100px 100px;transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.cp-orbit{transform-origin:100px 100px;animation:cp-spin 9s linear infinite}
.cp-hub{animation:cp-pulse 2.6s ease-in-out infinite}
@keyframes cp-spin{to{transform:rotate(360deg)}}
@keyframes cp-pulse{0%,100%{opacity:.5}50%{opacity:.15}}
.cp-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1;min-width:320px}
.cp-tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.cp-tile b{display:block;font-size:20px;color:var(--slate);line-height:1.3;font-variant-numeric:tabular-nums}
.cp-tile.on b{color:var(--blue)}
.cp-tile i{display:block;font-style:normal;font-size:11.5px;color:var(--text3)}
.cp-state{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);margin-top:2px}
.cp-beat{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;animation:cp-beat 1.6s ease-in-out infinite}
@keyframes cp-beat{0%,100%{box-shadow:0 0 0 0 rgba(233,71,9,.35)}50%{box-shadow:0 0 0 6px rgba(233,71,9,0)}}
/* 页面帮助抽屉 + 新手引导 */
.help-q{width:22px;height:22px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-left:10px;vertical-align:middle}
.card-title .help-q{margin-left:auto}
.help-mask{position:fixed;inset:0;background:rgba(20,30,50,.18);z-index:130}
.help-panel{position:absolute;right:0;top:0;height:100%;width:420px;max-width:92vw;background:#fff;border-left:1px solid var(--line);box-shadow:-12px 0 34px rgba(30,40,60,.16);display:flex;flex-direction:column;animation:hp-slide .22s ease}
@keyframes hp-slide{from{transform:translateX(40px);opacity:.4}to{transform:none;opacity:1}}
.hp-head{display:flex;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);font-size:14px}
.hp-head .m-close{margin-left:auto}
.hp-body{flex:1;overflow:auto;padding:16px 18px}
.hp-sec{font-weight:700;color:var(--slate);margin:12px 0 6px;font-size:13px}
.hp-list{margin:0;padding-left:18px;font-size:12.5px;color:var(--text2);line-height:1.9}
.hp-list li{margin-bottom:4px}
/* 一页一句开场白 + 上手三步：让第一次用的人不用读完全文就知道先做什么 */
.hp-brief{background:var(--blue-bg2);border:1px solid var(--blue-bg);border-left:3px solid var(--blue);border-radius:9px;padding:10px 12px;font-size:12.5px;line-height:1.8;color:var(--text);margin-bottom:4px}
.hp-steps{list-style:none;margin:0;padding:0;counter-reset:hp}
.hp-steps li{position:relative;counter-increment:hp;font-size:12.5px;line-height:1.75;color:var(--text2);padding:0 0 10px 26px;margin:0}
.hp-steps li::before{content:counter(hp);position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.hp-steps li::after{content:"";position:absolute;left:8.5px;top:23px;bottom:4px;width:1px;background:var(--line)}
.hp-steps li:last-child{padding-bottom:2px}
.hp-steps li:last-child::after{display:none}
/* 说明条目分组分色：与「能力边界与档位」卡同一套四色语义 */
.hp-list .hp-it{list-style:none;margin:0 0 8px -18px;border:1px solid var(--line);border-left-width:3px;border-radius:9px;padding:8px 11px;background:#fff;font-size:12px;line-height:1.7}
.hp-it .hp-tg{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:20px;margin-right:7px}
.hp-it.k-green{border-left-color:var(--green)}.hp-it.k-green .hp-tg{color:var(--green);background:var(--green-bg)}
.hp-it.k-slate{border-left-color:var(--slate)}.hp-it.k-slate .hp-tg{color:var(--slate);background:#edf1f7}
.hp-it.k-red{border-left-color:var(--red)}.hp-it.k-red .hp-tg{color:var(--red);background:var(--red-bg)}
.hp-it.k-orange{border-left-color:var(--orange)}.hp-it.k-orange .hp-tg{color:var(--orange);background:var(--orange-bg)}
.hp-foot{margin-top:14px;font-size:11.5px;color:var(--text3);border-top:1px dashed var(--line);padding-top:10px}
.plat-radios{display:flex;gap:8px;flex-wrap:wrap}
.plat-radios label{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12.5px;cursor:pointer;background:#fff}
.plat-radios label:hover{border-color:var(--blue);color:var(--blue)}
.plat-radios input{width:auto;flex:none;accent-color:var(--blue);margin:0}
.chip-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch i{width:36px;height:20px;border-radius:999px;background:#d7d2cc;transition:background .18s;display:inline-block;position:relative;flex:none}
.switch i::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .18s}
.switch input:checked+i{background:var(--blue)}
.switch input:checked+i::after{left:18px}
@media (max-width:1280px){.home2{grid-template-columns:1fr}.ai-dock{position:static;height:560px}}

/* ---------- 任务9轮：引擎选择 / 引擎徽标 / 智能预警 ---------- */
.ch-enginebar{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--text3);flex-wrap:wrap}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;max-width:1180px}
.set-card{padding:18px 20px;display:flex;flex-direction:column;min-width:0}
.set-card .card-title{margin-bottom:12px}
.set-savebar{display:flex;align-items:center;gap:12px;margin-top:16px}
@media(max-width:1000px){.settings-grid{grid-template-columns:1fr}}
.eb-label{white-space:nowrap}
.eb-select{border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:12px;background:var(--blue-bg2);color:var(--text);cursor:pointer;outline:none}
.eb-select:hover{border-color:var(--blue)}
.eb-role{white-space:nowrap;border-bottom:1px dashed var(--line);cursor:help}
.eb-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.eng-badge{margin-top:6px;display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;background:var(--blue-bg);color:var(--blue)}
.eng-badge.model{background:#e6e4ff;color:#7a5af8}
.al-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-size:13px;border-left:3px solid var(--orange);background:#faf9f7;margin-bottom:6px}
.al-row.critical{border-left-color:var(--red);background:#fff7f7}
.al-row .al-d{color:var(--text2);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al-row .link{cursor:pointer}
/* 账户健康分（首页） */
.hs-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:8px}
.hs-dim{background:#faf9f7;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.hs-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}
.hs-top b{font-size:15px}
.hs-top b i{font-style:normal;font-size:11px;color:var(--text3)}
.hs-bar{height:6px;border-radius:3px;background:#eee;overflow:hidden}
.hs-bar i{display:block;height:100%;border-radius:3px}
.hs-note{font-size:12px;color:var(--text3);line-height:1.5}
.hs-chain{font-size:12px;color:var(--text2)}
.hs-chain summary{cursor:pointer;color:var(--blue);font-size:12px;outline:none}
.hs-chain .hs-c{display:flex;gap:6px;margin-top:4px;line-height:1.5}
.hs-chain .hs-c b{color:var(--text3);font-weight:600;white-space:nowrap}
.gr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.gr-it{border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:9px 12px 10px;background:#fff;display:flex;flex-direction:column;gap:5px}
.gr-hd{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.gr-hd i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--text3)}
.gr-hd b{font-size:12.5px;color:var(--text)}
.gr-hd span{font-size:11px;color:var(--text3)}
.gr-hd em{font-style:normal;font-size:16px;font-weight:700;margin-left:auto;color:var(--text)}
.gr-nm{font-size:11.5px;line-height:1.6;color:var(--text2);word-break:break-all}
.gr-it.g-green{border-left-color:var(--green)}.gr-it.g-green i{background:var(--green)}.gr-it.g-green em{color:var(--green)}
.gr-it.g-slate{border-left-color:var(--slate)}.gr-it.g-slate i{background:var(--slate)}.gr-it.g-slate em{color:var(--slate)}
.gr-it.g-orange{border-left-color:var(--orange)}.gr-it.g-orange i{background:var(--orange)}.gr-it.g-orange em{color:var(--orange)}
.gr-it.g-red{border-left-color:var(--red)}.gr-it.g-red i{background:var(--red)}.gr-it.g-red em{color:var(--red)}
@media (max-width:1180px){.gr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1200px){.hs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- 投流知识库 ---------- */
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.kb-card{padding:16px 18px;display:flex;flex-direction:column}
.kb-card .card-title{display:flex;align-items:center;gap:8px}
.kb-pts{margin:10px 0 0;padding-left:18px;font-size:13px;color:var(--text2);line-height:1.8}
.kb-pts li{margin-bottom:4px}

/* 飞书推送 */
.feishu-push{margin-left:12px;white-space:nowrap}
.feishu-push:disabled{opacity:.45;cursor:not-allowed}

/* ---------- 登录与账户菜单 ---------- */
body.booting #app{display:none}
.login-mask{position:fixed;inset:0;background:linear-gradient(135deg,#fdeee6 0%,#f7f6f4 55%,#e8edf5 100%);display:flex;align-items:center;justify-content:center;z-index:200}
.login-card{width:360px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(57,84,120,.16);padding:26px 28px 22px}
.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.login-logo .lg-mark{height:40px;width:auto}
.login-logo b{font-size:18px;display:block}
.login-logo span{font-size:12px;color:var(--text3)}
.login-err{background:var(--red-bg);color:var(--red);border-radius:8px;padding:8px 10px;font-size:12.5px;margin-bottom:10px}
.lg-remember{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--text2);margin:2px 0 10px;cursor:pointer;line-height:1.5}
.lg-remember input{width:auto;margin-top:2px}
.login-btn{width:100%;padding:9px 0;font-size:15px;margin-top:4px}
.login-note{margin-top:14px;font-size:11.5px;color:var(--text3);line-height:1.7}
#user-menu-btn{cursor:pointer;user-select:none}
.user-menu{position:fixed;right:18px;top:46px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px rgba(22,60,130,.14);min-width:216px;padding:8px 0;z-index:150}
.user-menu .um-head{padding:8px 14px 10px;border-bottom:1px solid var(--line)}
.user-menu .um-head b{display:block;font-size:14px}
.user-menu .um-head span{font-size:11.5px;color:var(--text3)}
.user-menu .um-item{padding:9px 14px;font-size:13px;cursor:pointer;color:var(--text)}
.user-menu .um-item:hover{background:var(--blue-bg2);color:var(--blue)}
.user-menu .um-item.danger:hover{background:var(--red-bg);color:var(--red)}

/* ---------- 成员管理 ---------- */
.team-role-admin{color:var(--blue);font-weight:600}
.team-role-operator{color:var(--text2)}
.adv-pick{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}
.adv-pick label{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text);cursor:pointer;padding:5px 6px;border-radius:6px;min-width:0}
.adv-pick input[type=checkbox]{width:auto;flex:none;accent-color:var(--blue)}
.adv-pick label:hover{background:var(--blue-bg2)}
.adv-pick .an{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adv-pick .num{font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;flex:none}
.adv-pick .gp{font-size:11.5px;color:var(--text3);font-weight:600;margin-top:6px;padding:0 6px}
.team-note{font-size:12px;color:var(--text3);margin-top:8px}

/* ---------- 智能托管：体检卡 / 学习中心 ---------- */
.ck-card{padding:14px 18px;margin-bottom:12px}
.ck-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.ck-head .ck-name{font-weight:700;font-size:14px}
.ck-stats{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--text2);padding:6px 0 10px;border-bottom:1px dashed var(--line)}
.ck-stats b{color:var(--text);font-variant-numeric:tabular-nums}
.ck-issue{display:flex;gap:10px;padding:9px 10px;border-radius:8px;margin-top:8px;font-size:12.5px;border-left:3px solid var(--line)}
.ck-issue.critical{border-left-color:var(--red);background:#fff7f7}
.ck-issue.warning{border-left-color:var(--orange);background:#fdf8f2}

/* ---------- 智能托管 · 托管台账 ---------- */
.hg-bar{display:flex;align-items:center;gap:14px;padding:13px 18px;flex-wrap:wrap}
.hg-bar .hg-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}
.hg-kc{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:10px;padding:7px 14px}
.hg-next{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:400;color:var(--text2);background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:4px 11px}
.hg-next i{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.hg-next[data-paused="1"] i{background:var(--red)}
.hg-next em{font-style:normal;font-variant-numeric:tabular-nums}
.hg-risk{padding:12px 16px 13px}
.hg-rhd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.hg-rhd b{font-size:13px;color:var(--text)}
.hg-rhd span{font-size:11.5px;color:var(--text3)}
.hg-rg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hg-it{border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:8px 12px 9px;background:#fff}
.hg-it .hg-tg{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;margin-bottom:5px}
.hg-tc{font-size:11.8px;line-height:1.62;color:var(--text2)}
.hg-tc b{color:var(--text)}
.hg-it.k-green{border-left-color:var(--green)}.hg-it.k-green .hg-tg{color:var(--green);background:var(--green-bg)}
.hg-it.k-slate{border-left-color:var(--slate)}.hg-it.k-slate .hg-tg{color:var(--slate);background:#edf1f7}
.hg-it.k-red{border-left-color:var(--red)}.hg-it.k-red .hg-tg{color:var(--red);background:var(--red-bg)}
.hg-it.k-orange{border-left-color:var(--orange)}.hg-it.k-orange .hg-tg{color:var(--orange);background:var(--orange-bg)}
@media (max-width:1100px){.hg-rg{grid-template-columns:1fr}}
.hg-tbl td{vertical-align:middle}
.hg-row .hg-name{font-weight:600}
.hg-row.open>td{background:#fbfaf8}
.hg-exp{white-space:nowrap}
.hg-exp-row>td{background:#fbfaf8;padding:0!important;border-top:none}
.hg-panel{display:grid;grid-template-columns:minmax(340px,1.1fr) minmax(380px,1.4fr);gap:18px;padding:14px 16px 16px;border-top:1px dashed var(--line)}
.hg-ph{display:flex;align-items:center;gap:10px;font-weight:600;font-size:12.5px;margin-bottom:8px}
.hg-ph .btn{margin-left:auto}
.hg-rule{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;margin-bottom:6px;background:#fff}
.hg-rule b{font-size:12.5px}
.hg-rule .link{margin-left:auto;font-size:12px}
.hg-rule .link+.link{margin-left:10px}
.hg-ev{display:flex;gap:10px;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid var(--line);margin-bottom:6px;font-size:12px;border-left:3px solid var(--line)}
.hg-ev.warn{border-left-color:var(--orange);background:#fffdf8}
.hg-ev.crit{border-left-color:var(--red);background:#fff9f9}
.hg-ev.info{border-left-color:var(--blue)}
.hg-ev-t{flex:none;color:var(--text3);font-size:11px;padding-top:1px}
.hg-ev-b{flex:1;min-width:0}
.hg-ev-j{display:block;color:var(--text2);font-size:11.5px;margin:1px 0}
.hg-ev-r{color:var(--text2);word-break:break-word}
.hg-ev-r .link{margin-left:6px;white-space:nowrap}
.hg-modes{display:flex;flex-direction:column;gap:8px}
.hg-mode{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;font-size:12.5px;background:#fff;transition:border-color .15s,background .15s,box-shadow .15s}
.hg-mode:hover{border-color:var(--green);background:#f9fefb}
.hg-mode input[type=radio]{appearance:none;-webkit-appearance:none;margin:2px 0 0;flex:none;width:18px;height:18px;border:1.5px solid #c4ccd8;border-radius:50%;background:#fff;position:relative;cursor:pointer;transition:border-color .15s,background .15s}
.hg-mode input[type=radio]:hover{border-color:var(--green)}
.hg-mode input[type=radio]:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hg-mode input[type=radio]:checked{border-color:var(--green);background:var(--green)}
.hg-mode input[type=radio]:checked::after{content:"";position:absolute;left:4px;top:4px;width:8px;height:8px;border-radius:50%;background:#fff}
.hg-mode input[type=radio]:disabled{border-color:#dfe3e9;background:#f2f3f5;cursor:not-allowed}
.hg-mode.on{border-color:var(--green);background:var(--green-bg);box-shadow:0 0 0 1px var(--green)}
.hg-mode.on>div>b{color:var(--green)}
.hg-mode:has(input[type=radio]:disabled),.hg-mode.dis{opacity:.62;cursor:not-allowed;background:#fafbfc}
.hg-mode.dis:hover{border-color:var(--line);background:#fafbfc}
.hg-mode>div{display:flex;flex-direction:column;gap:4px}
.hg-mode>div>b{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text)}
.hg-mode>div>b .tag{font-size:10.5px;padding:1px 7px}
.hg-mode>div>span{color:var(--text2);font-size:11.5px;line-height:1.65;font-weight:400}
.hg-mode.on>div>span{color:#2f6b4f}
.hg-note-warn{background:var(--orange-bg);border:1px solid #f5d9b0;border-left:3px solid var(--orange);border-radius:9px;padding:10px 13px;font-size:11.5px;line-height:1.75;color:#7c4a06;margin-top:12px}
.hg-note-warn b{color:#8a3c00}
.hg-mode-cur{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:9px;padding:8px 12px;font-size:12px;color:var(--text2);background:#fbfdfc;line-height:1.6}
.hg-mode-cur .link{margin-left:auto;white-space:nowrap}
@media (max-width:1100px){.hg-panel{grid-template-columns:1fr}}
.ck-issue.opportunity{border-left-color:var(--blue);background:#f4f8fd}
.ck-issue.info{border-left-color:#c8cfda;background:#fafbfc}
.ck-ib{flex:1;min-width:0;line-height:1.65;color:var(--text2)}
.ck-ib b{color:var(--text)}
.ck-ev{color:var(--text2);font-size:12px}
.ck-su{color:var(--text3);font-size:12px}
.ck-ib .btn{margin-top:6px}
.learn-two{grid-template-columns:1fr}
@media(min-width:1200px){.learn-two{grid-template-columns:1fr 1fr}}

/* ---------- 授权向导（三步指示器 + 分层说明） ---------- */
.wiz-steps{display:flex;align-items:center;margin-bottom:16px}
.wiz-steps .ws{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text3);white-space:nowrap}
.wiz-steps .ws .ws-n{width:20px;height:20px;border-radius:50%;background:#f0eeeb;color:var(--text3);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}
.wiz-steps .ws.on{color:var(--text);font-weight:600}
.wiz-steps .ws.on .ws-n{background:var(--blue);color:#fff}
.wiz-steps .ws.done{color:var(--text2)}
.wiz-steps .ws.done .ws-n{background:var(--green-bg);color:var(--green)}
.wiz-steps .ws-line{flex:1;height:1px;background:var(--line);margin:0 10px;min-width:14px}
.wiz-sec{font-size:12px;font-weight:700;color:var(--text2);margin:2px 0 8px}
.wiz-flow{display:flex;flex-direction:column;gap:8px}
.wiz-flow-item{display:flex;gap:10px;align-items:flex-start;background:#faf9f7;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.wiz-flow-item .wf-n{flex:none;width:20px;height:20px;border-radius:50%;background:var(--blue-bg);color:var(--blue);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}
.wiz-flow-item b{display:block;font-size:13px;line-height:1.4}
.wiz-flow-item span{display:block;font-size:11.5px;color:var(--text3);margin-top:2px;line-height:1.5}
.wiz-cb{border:1px dashed #f0c9b3;background:var(--blue-bg2);border-radius:8px;padding:10px 12px;margin-top:12px}
.wiz-cb-label{font-size:12px;font-weight:600;color:var(--text2)}
.wiz-cb-label span{font-weight:400;color:var(--text3)}
.wiz-cb-row{display:flex;align-items:center;gap:8px;margin-top:6px}
.wiz-cb-row code{flex:1;font-size:11px;word-break:break-all;color:var(--text)}
.wiz-tips{font-size:11.5px;color:var(--text3);line-height:1.8;margin-top:10px}
.wiz-opened{display:flex;gap:8px;align-items:flex-start;background:var(--green-bg);color:#0e7a4c;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.5;margin-top:10px}
.wiz-adv{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font-size:13px}
.wiz-adv:hover{border-color:var(--blue);background:var(--blue-bg2)}

/* ---------- 多条件策略规则：条件编辑器 + 命中预演 + AI 推荐 ---------- */
.rc-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12.5px;color:var(--text2);line-height:1.7}
.rc-item{background:#faf9f7;border:1px solid var(--line);border-radius:6px;padding:1px 7px;white-space:nowrap}
.rc-sep{color:var(--blue);font-weight:700;font-size:11.5px;background:var(--blue-bg);border-radius:5px;padding:0 5px}
.rc-gate{width:100%;font-size:11px;color:var(--text3)}
.rc-logic{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text2)}
.rc-logic .chip{border-radius:8px;padding:2px 10px;font-size:12px}
.rc-logic-why{font-size:11.5px;color:var(--text3);line-height:1.6;flex:1;min-width:220px}
.rc-row{display:grid;grid-template-columns:1fr 92px 130px 30px;gap:6px;align-items:center;margin-top:8px}
.rc-row .rc-hint{grid-column:1/-1;font-size:11px;color:var(--orange);background:var(--orange-bg);border-radius:6px;padding:4px 8px;line-height:1.5;margin-top:-2px}
.rc-del{border:1px solid var(--line);background:#fff;border-radius:6px;height:30px;color:var(--text3);cursor:pointer;font-size:12px}
.rc-del:hover{border-color:var(--red);color:var(--red)}
.ai-basis{background:var(--blue-bg2);border:1px solid #f0c9b3;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:12px;color:var(--text2);line-height:1.6}
.ai-basis b{display:block;font-size:12.5px;color:var(--blue);margin-bottom:4px}
.ai-basis ul{margin:6px 0 0;padding-left:18px}
.ai-basis li{margin:2px 0}
.ai-basis em{display:block;font-style:normal;color:var(--text3);font-size:11px;margin-top:6px}
.ai-panel{margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.ai-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text3);margin-bottom:10px}
.ai-hd b{font-size:13.5px;color:var(--blue)}
.ai-hd .link{margin-left:auto}
.ai-cand{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:#faf9f7}
.ai-cand-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.ai-cand-cond{margin:7px 0 4px}
.ai-cand-why{font-size:12px;color:var(--text2);line-height:1.6}
.ai-cand-basis{margin:6px 0 0;padding-left:16px;font-size:11.5px;color:var(--text3);line-height:1.7}
.ai-cand-ops{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}
.ai-none{font-size:12.5px;color:var(--text2);padding:4px 0}
.ai-notes{margin:8px 0 0;padding-left:18px;font-size:11.5px;color:var(--text3);line-height:1.8}
.pv-box{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#fff;font-size:12px}
.pv-err{color:var(--red)}
.pv-sum{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;font-size:12.5px;color:var(--text3)}
.pv-sum b{font-size:13.5px;color:var(--text)}
.pv-note{margin-top:5px;font-size:11.5px;color:var(--text2);line-height:1.6;background:var(--blue-bg2);border-radius:6px;padding:5px 8px}
.pv-warn{background:var(--orange-bg);color:var(--orange)}
.pv-list{margin-top:7px;max-height:180px;overflow-y:auto}
.pv-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px dashed var(--line);padding:5px 0;font-size:12px}
.pv-row span{font-weight:600}
.pv-row i{font-style:normal;color:var(--text3);font-size:11px}
.pv-row b{font-weight:500;color:var(--blue)}
.pv-more{font-size:11px;color:var(--text3);padding-top:4px}
.hg-rule .rc-wrap{flex:1}
.hg-flowbtn{margin-left:auto}

/* 素材监控：与全局一致的控件口径 */
#view .card select.ipt,
#view .card input.ipt { height: 34px; padding: 0 10px; box-sizing: border-box; }
#view .card textarea.ipt { padding: 8px 10px; box-sizing: border-box; }
#view details.card > summary { list-style: none; }
#view details.card > summary::-webkit-details-marker { display: none; }
#view details.card[open] > summary { margin-bottom: 6px; }
#view .mat-row:hover td { background: var(--bg2); cursor: pointer; }

/* 素材对比表：列宽固定（colgroup 给数值列同宽），窄栏里靠 tbl-scroll 横向滚 */
.mat-tbl{table-layout:fixed;min-width:600px}
.mat-tbl td{overflow:hidden}

/* 全局悬浮提示气泡（替代原生 title 黄签） */
#qc-tip{position:fixed;z-index:400;max-width:340px;background:rgba(28,35,48,.95);color:#f5f7fa;font-size:12px;line-height:1.7;font-weight:400;padding:7px 11px;border-radius:8px;box-shadow:0 6px 18px rgba(10,30,80,.25);pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .13s ease,transform .13s ease;white-space:pre-line;text-align:left}
#qc-tip.on{opacity:1;transform:none}
