/* ==========================================================
   砌块搜 BlockSeek · 分子砌块行业搜索引擎
   设计系统：极简 / 白底 / 单主色 / 无装饰
   ========================================================== */

:root{
  --blue:#1657F0;
  --blue-d:#0E43C4;
  --blue-l:#EAF1FF;
  --link:#1155CC;
  --text:#16191D;
  --text2:#5B6472;
  --text3:#8B94A3;
  --text4:#A7AEBB;
  --line:#EDEFF3;
  --line2:#F4F6F9;
  --bg:#FFFFFF;
  --bg2:#F8F9FB;
  --price:#E34D0D;
  --green:#1E7B4F;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.6;color:var(--text);background:#fff;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}
h1,h2,h3,h4,p{margin:0}
svg{display:block}

/* ---------- 通用按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:30px;padding:0 14px;border-radius:6px;border:1px solid #DDE1E8;
  background:#fff;color:#3B4351;font-size:12.5px;transition:all .15s;white-space:nowrap;
}
.btn:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.btn-p{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-p:hover{background:var(--blue-d);border-color:var(--blue-d);color:#fff}
.btn-sm{height:26px;padding:0 10px;font-size:12px}
.btn-lg{height:38px;padding:0 22px;font-size:14px;border-radius:8px}
.btn-ghost{border-color:transparent;background:transparent;color:var(--text2)}

/* ---------- 标签 ---------- */
.tag{display:inline-block;font-size:11.5px;line-height:18px;padding:0 6px;border-radius:4px;
  background:#F2F4F8;color:var(--text2);white-space:nowrap;font-weight:400}
.tag-b{background:var(--blue-l);color:var(--blue)}
.tag-g{background:#E9F7EF;color:#1E7B4F}
.tag-o{background:#FFF3E8;color:#C2410C}
.tag-r{background:#FDECEA;color:#C0342B}
.tag-ad{background:transparent;border:1px solid #DDE1E8;color:var(--text3);line-height:16px;font-size:11px}

/* ==========================================================
   1. 首页
   ========================================================== */
.mini-nav{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;font-size:13px}
.mini-nav a{color:var(--text2)}
.mini-nav a:hover{color:var(--blue)}
.mini-nav .sep{width:1px;height:11px;background:var(--line)}

.home{display:flex;flex-direction:column;align-items:center;padding:15vh 24px 0;min-height:calc(100vh - 252px)}
@media(max-height:760px){.home{padding-top:9vh}}

.brand{display:flex;align-items:center;gap:13px}
.brand-t{font-size:40px;font-weight:750;letter-spacing:2px;line-height:1}
.brand-sub{margin-top:16px;font-size:13px;color:var(--text3);letter-spacing:.4px}

/* 搜索框 */
.sb{width:100%;max-width:700px;margin-top:30px;position:relative}
.sb-row{
  display:flex;align-items:center;height:50px;background:#fff;
  border:1.5px solid #CCD3DF;border-radius:10px;
  transition:border-color .16s,box-shadow .16s;
}
.sb-row:focus-within{border-color:var(--blue);box-shadow:0 3px 16px rgba(22,87,240,.13)}
.sb-type{
  height:100%;border:0;background:transparent;outline:0;cursor:pointer;
  padding:0 6px 0 14px;font-size:13.5px;color:#3B4351;
  border-right:1px solid var(--line);margin-right:2px;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238B94A3' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;background-size:9px;
  padding-right:22px;
}
.sb-input{flex:1;height:100%;border:0;outline:0;font-size:15.5px;padding:0 12px;background:transparent;color:var(--text);min-width:0}
.sb-input::placeholder{color:var(--text4)}
.sb-ic{width:42px;height:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--text3);flex:none}
.sb-ic:hover{color:var(--blue)}
.sb-btn{height:100%;padding:0 26px;border:0;background:var(--blue);color:#fff;font-size:15px;font-weight:500;
  border-radius:0 8px 8px 0;transition:background .15s;flex:none}
.sb-btn:hover{background:var(--blue-d)}

/* 下拉建议 */
.sb-drop{position:absolute;left:0;right:0;top:56px;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 10px 30px rgba(20,30,60,.10);padding:6px;display:none;z-index:30}
.sb-drop.on{display:block}
.sb-drop .dh{font-size:12px;color:var(--text4);padding:6px 10px 4px}
.sb-drop a{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:8px 10px;border-radius:6px;color:var(--text);font-size:13.5px}
.sb-drop a:hover{background:#F4F7FD;text-decoration:none}
.sb-drop a span{color:var(--text4);font-size:12px}

/* 热搜 */
.hot{margin-top:18px;font-size:13px;color:var(--text3);display:flex;gap:16px;flex-wrap:wrap;justify-content:center;max-width:700px}
.hot b{font-weight:400;color:var(--text4)}
.hot a{color:var(--text2)}
.hot a:hover{color:var(--blue)}

.home-join{margin-top:26px;font-size:13px;color:var(--text3)}
.home-join a{color:var(--text2);border-bottom:1px dashed #CCD3DF;padding-bottom:1px}
.home-join a:hover{color:var(--blue);border-color:var(--blue);text-decoration:none}

.home-meta{margin-top:52px;font-size:12.5px;color:var(--text4);display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
.home-meta b{color:var(--text2);font-weight:600}

.foot{border-top:1px solid var(--line2);padding:16px 24px;text-align:center;font-size:12.5px;color:var(--text4)}
.foot a{color:var(--text3);margin:0 7px}
.foot a:hover{color:var(--blue)}

/* ==========================================================
   2. 结果页
   ========================================================== */
.rtop{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.rtop-in{max-width:1280px;margin:0 auto;height:58px;display:flex;align-items:center;gap:24px;padding:0 20px}
.logo-sm{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:var(--text);flex:none;letter-spacing:.5px}
.logo-sm:hover{color:var(--text);text-decoration:none}
.sb-sm{flex:1;max-width:580px;height:38px;border-radius:8px;border-color:#DDE1E8}
.sb-sm .sb-row{height:38px;border-radius:8px}
.sb-sm .sb-input{font-size:14px}
.sb-sm .sb-btn{font-size:14px;padding:0 20px;border-radius:0 6px 6px 0}
.rtop-nav{margin-left:auto;display:flex;align-items:center;gap:18px;font-size:13px;color:var(--text2);flex:none}
.rtop-nav > a{display:inline-flex;align-items:center;height:32px;line-height:1;color:var(--text2)}
.rtop-nav > a:hover{color:var(--blue)}

.rtabs{max-width:1280px;margin:0 auto;display:flex;gap:26px;padding:0 20px;font-size:14px}
.rtabs a{padding:9px 0 10px;color:var(--text2);border-bottom:2px solid transparent}
.rtabs a:hover{color:var(--blue);text-decoration:none}
.rtabs a.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:500}

.rwrap{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;gap:100px;align-items:flex-start}
.rmain{flex:1;min-width:0;padding:16px 0 70px}
.rside{width:300px;flex:none;padding:16px 0}

/* 结果统计条 */
.rstat{display:flex;align-items:center;font-size:12.5px;color:var(--text4);margin-bottom:4px}
.rstat .sort{margin-left:auto;display:flex;gap:14px;align-items:center}
.rstat .sort a{color:var(--text2)}
.rstat .sort a.on{color:var(--blue);font-weight:500}

/* 单条结果 */
.ri{padding:15px 0 16px;border-bottom:1px solid var(--line2)}
.ri.adv{background:#FAFBFF;margin:0 -14px 8px;padding:15px 14px 16px;border-radius:8px;border-bottom-color:transparent}
.ri-h{display:flex;align-items:flex-start;gap:13px}
.ri-skel{width:56px;height:56px;flex:none;border:1px solid var(--line);border-radius:8px;
  display:flex;align-items:center;justify-content:center;background:#fff}
.ri-body{flex:1;min-width:0}
.ri-t{font-size:17px;line-height:1.5;font-weight:500;color:var(--link)}
.ri-t:hover{text-decoration:underline}
.ri-t em{color:#C8102E;font-style:normal}
.ri-u{font-size:12.5px;color:var(--green);margin-top:0;line-height:1.5}
.ri-d{font-size:13.5px;color:var(--text2);line-height:1.72;margin-top:4px}
.ri-d b{color:var(--text);font-weight:500}
.ri-tags{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* 报价表 */
.qt{margin-top:9px;border:1px solid #EAEDF3;border-radius:8px;overflow:hidden;background:#fff;max-width:100%}
.qt table{width:100%;border-collapse:collapse;font-size:12.5px}
.qt th{background:var(--bg2);color:var(--text4);font-weight:500;text-align:left;padding:6px 10px;font-size:12px;white-space:nowrap}
.qt td{padding:7px 10px;border-top:1px solid #F1F3F7;color:#3B4351;white-space:nowrap}
.qt tr:first-child td{border-top:0}
.qt .sname{color:var(--text);font-weight:500}
.qt .pr{color:var(--price);font-weight:600}
.qt .pr small{font-weight:400;color:var(--text4);font-size:11px;margin-left:1px}
.qt .low{font-size:11px;color:var(--blue);background:var(--blue-l);border-radius:3px;padding:0 4px;margin-left:5px}
.qt-f{display:flex;align-items:center;gap:10px;padding:7px 10px;border-top:1px solid #F1F3F7;background:#FCFDFE;font-size:12.5px;color:var(--text4)}
.qt-f .r{margin-left:auto;display:flex;gap:8px;align-items:center}

/* 分页 */
.pager{display:flex;gap:6px;margin-top:26px;align-items:center;font-size:13px;flex-wrap:wrap}
.pager a{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:6px;color:#3B4351;padding:0 9px}
.pager a:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.pager a.on{background:var(--blue);border-color:var(--blue);color:#fff}
.pager span{color:var(--text4);font-size:12.5px;margin-left:6px}

.related{margin-top:24px;font-size:13px;color:var(--text3);line-height:2}
.related b{font-weight:400;color:var(--text4);margin-right:8px}
.related a{color:var(--text2);margin-right:14px}
.related a:hover{color:var(--blue)}

/* 右侧广告 */
.ad{border:1px solid #EAEDF3;border-radius:10px;overflow:hidden;margin-bottom:14px;background:#fff}
.ad-h{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text4);padding:6px 11px;border-bottom:1px solid var(--line2);background:#FCFDFE}
.ad-b{padding:12px}
.ad-hero{background:linear-gradient(140deg,#1657F0 0%,#0B3391 100%);color:#fff;padding:20px 16px}
.ad-hero .k{font-size:11px;opacity:.75;letter-spacing:1px}
.ad-hero .t{font-size:16px;font-weight:600;margin-top:6px;line-height:1.45}
.ad-hero .d{font-size:12.5px;opacity:.8;margin-top:6px;line-height:1.6}
.ad-hero .b{margin-top:14px;display:inline-flex;align-items:center;gap:4px;background:#fff;color:var(--blue);
  font-size:12.5px;font-weight:500;height:28px;padding:0 12px;border-radius:5px}
.ad-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2)}
.ad-item:last-child{border-bottom:0;padding-bottom:0}
.ad-item:first-child{padding-top:0}
.ad-thumb{width:52px;height:52px;flex:none;border-radius:7px;background:linear-gradient(150deg,#F0F4FC,#E3EAF8);
  display:flex;align-items:center;justify-content:center;color:#9BAAC4}
.ad-item .t{font-size:13px;color:var(--text);font-weight:500;line-height:1.45}
.ad-item .d{font-size:12px;color:var(--text3);margin-top:3px;line-height:1.5}
.ad-link{display:block;font-size:13px;color:var(--text);padding:7px 0;line-height:1.5}
.ad-link:hover{color:var(--blue);text-decoration:none}
.ad-link i{font-style:normal;color:var(--text4);font-size:11px;display:block;margin-top:1px}

.side-join{border:1px solid var(--line);border-radius:10px;padding:16px;background:linear-gradient(150deg,#FAFBFF,#fff)}
.side-join .t{font-size:14px;font-weight:600}
.side-join .d{font-size:12.5px;color:var(--text3);margin-top:5px;line-height:1.65}
.side-join .b{margin-top:12px;display:inline-flex;height:30px;align-items:center;padding:0 14px;border-radius:6px;
  background:var(--blue);color:#fff;font-size:12.5px;font-weight:500}
.side-join .b:hover{background:var(--blue-d);text-decoration:none}

/* ==========================================================
   3. 询单弹窗
   ========================================================== */
.mask{position:fixed;inset:0;background:rgba(16,24,40,.34);opacity:0;pointer-events:none;
  transition:opacity .2s;z-index:60;backdrop-filter:blur(1px)}
.mask.on{opacity:1;pointer-events:auto}

.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%);width:520px;max-width:calc(100vw - 32px);
  background:#fff;border-radius:12px;box-shadow:0 24px 60px rgba(16,24,40,.22);z-index:61;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-height:88vh;display:flex;flex-direction:column}
.modal.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.modal-h{padding:16px 20px;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:10px}
.modal-h .t{font-size:15px;font-weight:600}
.modal-h .x{margin-left:auto;width:28px;height:28px;border:0;background:transparent;color:var(--text4);
  font-size:18px;line-height:1;border-radius:6px;display:flex;align-items:center;justify-content:center}
.modal-h .x:hover{background:var(--bg2);color:var(--text)}
.modal-b{padding:18px 20px;overflow:auto}
.modal-f{padding:14px 20px;border-top:1px solid var(--line2);display:flex;gap:10px;justify-content:flex-end;background:#FCFDFE;border-radius:0 0 12px 12px}

.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--text2);margin-bottom:6px}
.field label i{font-style:normal;color:var(--price);margin-left:2px}
.inp{width:100%;height:36px;border:1px solid #DDE1E8;border-radius:7px;padding:0 11px;font-size:13.5px;
  outline:0;color:var(--text);background:#fff;transition:border-color .15s,box-shadow .15s}
.inp:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,87,240,.10)}
textarea.inp{height:auto;padding:9px 11px;resize:vertical;line-height:1.6}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sel2{width:100%;height:36px;border:1px solid #DDE1E8;border-radius:7px;padding:0 10px;font-size:13.5;
  outline:0;color:var(--text);background:#fff;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238B94A3' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center}
.sel2:focus{border-color:var(--blue)}
.modal-tip{background:#F8FAFF;border:1px solid #E4ECFD;border-radius:8px;padding:10px 12px;font-size:12.5px;
  color:var(--text2);line-height:1.65;margin-top:4px}
.modal-tip b{color:var(--blue);font-weight:500}

.toast{position:fixed;left:50%;bottom:48px;transform:translate(-50%,10px);background:#16191D;color:#fff;
  font-size:13px;padding:10px 18px;border-radius:8px;z-index:80;opacity:0;pointer-events:none;transition:.22s}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ==========================================================
   4. 供应商登录
   ========================================================== */
.login{min-height:100vh;display:flex}
.login-l{width:45.455%;flex:none;display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(40px,5vw,88px);background:#FAFBFF;border-right:1px solid var(--line)}
.login-l .t{font-size:26px;font-weight:700;line-height:1.45;letter-spacing:.5px}
.login-l .d{font-size:14px;color:var(--text2);margin-top:14px;line-height:1.8;max-width:380px}
.login-l ul{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-direction:column;gap:14px}
.login-l li{display:flex;gap:10px;font-size:13.5px;color:var(--text2);align-items:flex-start}
.login-l li i{width:18px;height:18px;flex:none;border-radius:50%;background:var(--blue-l);color:var(--blue);
  font-size:11px;font-style:normal;display:flex;align-items:center;justify-content:center;margin-top:2px}
.login-r{width:54.545%;flex:none;display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:0 48px;background:#fff}
.login-r > *{width:100%;max-width:404px}
.login-r .t{font-size:20px;font-weight:600}
.login-r .d{font-size:13px;color:var(--text3);margin-top:6px;margin-bottom:26px}
.login-r .field label{font-size:13px}
.login-r .inp{height:42px}
.login-r .btn-lg{width:100%;margin-top:6px}
.login-r .foot-tip{margin-top:18px;font-size:12.5px;color:var(--text4);text-align:center}
.login-r .foot-tip a{color:var(--text2)}

/* 长表单页（注册 / 找回密码） */
.login-r.tall{justify-content:flex-start;padding-top:9vh;padding-bottom:6vh;overflow-y:auto}
.login-r.tall .t{margin-top:0}

.code-row{display:flex;gap:8px}
.code-row .inp{flex:1;min-width:0}
.code-btn{height:42px;padding:0 14px;font-size:13px;flex:none}
.code-btn:disabled{color:var(--text4);border-color:#E7EAF0;cursor:not-allowed}

.agree{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--text2);
  margin:2px 0 18px;line-height:1.6;cursor:pointer}
.agree input{margin:2px 0 0;accent-color:var(--blue);width:13px;height:13px;cursor:pointer}
.agree a{color:var(--blue)}

.reg-done{text-align:center;padding:20px 0}
.reg-done .ic{width:52px;height:52px;border-radius:50%;background:#E9F7EF;color:#1E7B4F;
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.reg-done .t{font-size:18px;font-weight:600}
.reg-done .d{font-size:13px;color:var(--text2);margin-top:10px;line-height:1.8}

/* ==========================================================
   5. 供应商工作台
   ========================================================== */
.app{display:flex;min-height:100vh;background:#F7F8FA}
.side{width:208px;flex:none;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}
.side-h{height:58px;display:flex;align-items:center;gap:9px;padding:0 16px;border-bottom:1px solid var(--line2);flex:none}
.side-h .n{font-size:15px;font-weight:700;letter-spacing:.5px}
.side-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;gap:9px;height:38px;padding:0 11px;border-radius:7px;
  color:#3B4351;font-size:13.5px;transition:.13s}
.side-nav a:hover{background:var(--bg2);text-decoration:none;color:var(--text)}
.side-nav a.on{background:var(--blue-l);color:var(--blue);font-weight:500}
.side-nav a svg{flex:none;opacity:.9}
.side-nav .bdg{margin-left:auto;background:var(--price);color:#fff;font-size:11px;height:17px;min-width:17px;
  border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;font-weight:500}
.side-f{margin-top:auto;padding:14px 16px;border-top:1px solid var(--line2);font-size:12px;color:var(--text4);line-height:1.7}
.side-f a{color:var(--text2);display:block}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.main-h{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;
  padding:0 24px;gap:14px;flex:none;position:sticky;top:0;z-index:20}
.main-h .t{font-size:15px;font-weight:600}
.main-h .sub{font-size:12.5px;color:var(--text4);padding-left:14px;border-left:1px solid var(--line)}
.main-h .r{margin-left:auto;display:flex;align-items:center;gap:14px}
.who{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2)}
.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(140deg,#1657F0,#5B8DFF);color:#fff;
  font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:500}
.main-b{padding:20px 24px 60px;flex:1}

.page{display:none}
.page.on{display:block}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 16px 14px}
.kpi .k{font-size:12.5px;color:var(--text3);display:flex;align-items:center;gap:6px}
.kpi .v{font-size:25px;font-weight:700;margin-top:7px;letter-spacing:-.5px;line-height:1.1}
.kpi .v small{font-size:13px;font-weight:500;color:var(--text3);margin-left:3px;letter-spacing:0}
.kpi .d{font-size:12px;margin-top:5px;color:var(--text4)}
.kpi .d b{color:var(--green);font-weight:500}
.kpi .d b.down{color:var(--price)}

.card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.card-h{padding:13px 16px;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:10px}
.card-h .t{font-size:14px;font-weight:600}
.card-h .r{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12.5px}
.card-h .r a{color:var(--text2)}

.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start}
@media(max-width:1180px){.grid2{grid-template-columns:1fr}}

.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{background:var(--bg2);color:var(--text3);font-weight:500;font-size:12.5px;text-align:left;
  padding:9px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line2);color:#3B4351;white-space:nowrap}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:#FBFCFE}
.tbl tbody tr.clickable{cursor:pointer}
.tbl .tt{color:var(--text);font-weight:500}
.tbl .muted{color:var(--text4);font-size:12.5px}
.tbl .r{text-align:right}

.toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.toolbar .r{margin-left:auto;display:flex;gap:8px}
.inp-sm{height:32px;border:1px solid #DDE1E8;border-radius:7px;padding:0 10px;font-size:13px;outline:0;width:220px;color:var(--text)}
.inp-sm:focus{border-color:var(--blue)}

.tabs{display:flex;gap:22px;padding:0 16px;border-bottom:1px solid var(--line2);font-size:13.5px}
.tabs a{padding:11px 0;color:var(--text2);border-bottom:2px solid transparent}
.tabs a.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:500}
.tabs a:hover{text-decoration:none;color:var(--blue)}

/* 上传区 */
.drop{border:1.5px dashed #D3D9E3;border-radius:10px;padding:28px 20px;text-align:center;background:#FCFDFE;
  transition:.15s;cursor:pointer}
.drop:hover,.drop.over{border-color:var(--blue);background:#F7FAFF}
.drop .ic{width:40px;height:40px;margin:0 auto 10px;border-radius:10px;background:var(--blue-l);
  display:flex;align-items:center;justify-content:center;color:var(--blue)}
.drop .t{font-size:14px;font-weight:500}
.drop .d{font-size:12.5px;color:var(--text4);margin-top:5px;line-height:1.7}
.drop .d a{color:var(--blue)}

.progress{height:5px;background:#EDEFF3;border-radius:3px;overflow:hidden;margin-top:12px}
.progress i{display:block;height:100%;width:0;background:var(--blue);border-radius:3px;transition:width .3s}

.empty{padding:40px 20px;text-align:center;color:var(--text4);font-size:13px}

/* 抽屉 */
.drawer{position:fixed;top:0;right:0;height:100%;width:440px;max-width:92vw;background:#fff;
  box-shadow:-12px 0 40px rgba(16,24,40,.12);transform:translateX(100%);
  transition:transform .26s cubic-bezier(.4,0,.2,1);z-index:61;display:flex;flex-direction:column}
.drawer.on{transform:none}
.drawer-h{padding:16px 20px;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:10px;flex:none}
.drawer-h .t{font-size:15px;font-weight:600}
.drawer-b{padding:18px 20px;overflow:auto;flex:1}
.drawer-f{padding:14px 20px;border-top:1px solid var(--line2);display:flex;gap:10px;justify-content:flex-end;flex:none;background:#FCFDFE}

.kv{display:grid;grid-template-columns:78px 1fr;gap:9px 12px;font-size:13px;margin-bottom:18px}
.kv dt{color:var(--text4);font-size:12.5px}
.kv dd{margin:0;color:var(--text)}
.sec-t{font-size:12.5px;font-weight:600;color:var(--text3);letter-spacing:.5px;margin:0 0 12px;
  display:flex;align-items:center;gap:8px}
.sec-t::after{content:"";flex:1;height:1px;background:var(--line2)}

/* ==========================================================
   6. 砌块详情页
   ========================================================== */
.crumb{font-size:12.5px;color:var(--text4);margin-bottom:14px}
.crumb a{color:var(--text3)}
.crumb a:hover{color:var(--blue)}
.crumb i{font-style:normal;margin:0 7px;color:#D3D9E3}

.pcard{border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:14px;background:#fff}
.phead{display:flex;gap:18px}
.phead-skel{width:118px;height:118px;border:1px solid var(--line);border-radius:10px;flex:none;
  display:flex;align-items:center;justify-content:center;background:#FCFDFE}
.phead-main{flex:1;min-width:0}
.phead h1{font-size:22px;font-weight:600;line-height:1.35;letter-spacing:.2px}
.phead h1 span{font-size:13.5px;color:var(--text3);font-weight:400;margin-left:9px}
.phead-meta{font-size:13px;color:var(--text2);margin-top:8px;line-height:1.7}
.phead-meta b{color:var(--text);font-weight:500}
.phead-tags{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.phead-acts{display:flex;gap:9px;align-items:center;margin-top:15px;flex-wrap:wrap}
.phead-acts .hint{font-size:12.5px;color:var(--text4);margin-left:2px}

.pinfo{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line2);
  border:1px solid var(--line2);border-radius:8px;overflow:hidden;margin-top:18px}
.pinfo div{background:#fff;padding:10px 13px}
.pinfo .k{font-size:11.5px;color:var(--text4)}
.pinfo .v{font-size:13px;color:var(--text);margin-top:2px;line-height:1.5;word-break:break-word}

/* 比价区 */
.qsec-h{display:flex;align-items:flex-end;gap:10px;margin-bottom:13px;flex-wrap:wrap}
.qsec-h .t{font-size:15px;font-weight:600}
.qsec-h .n{font-size:12.5px;color:var(--text4);padding-bottom:1px;margin-left:2px}
.qsum{margin-left:auto;font-size:12.5px;color:var(--text3);line-height:1.7;text-align:right}
.qsum b{color:var(--price);font-weight:600}
.qsum i{font-style:normal;color:#D3D9E3;margin:0 6px}

.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.chip{height:28px;padding:0 12px;border-radius:14px;border:1px solid #E3E7EE;background:#fff;
  font-size:12.5px;color:var(--text2);display:inline-flex;align-items:center;gap:5px;transition:.13s}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.on{border-color:var(--blue);color:var(--blue);background:var(--blue-l)}
.chips .sp{flex:1}
.sortsel{border:0;background:transparent;font-size:12.5px;color:var(--text2);cursor:pointer;outline:0;
  appearance:none;padding-right:16px;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238B94A3' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center}

.qtbl{width:100%;border-collapse:collapse;font-size:13px}
.qtbl th{background:var(--bg2);color:var(--text3);font-weight:500;font-size:12.5px;text-align:left;
  padding:9px 12px;white-space:nowrap;border-bottom:1px solid var(--line)}
.qtbl td{padding:11px 12px;border-bottom:1px solid var(--line2);color:#3B4351;white-space:nowrap}
.qtbl tbody tr:last-child td{border-bottom:0}
.qtbl tbody tr:hover td{background:#FBFCFE}
.qtbl .sup{color:var(--text);font-weight:500}
.qtbl .pr{color:var(--price);font-weight:600}
.qtbl .pr small{font-weight:400;color:var(--text4);font-size:11px}
.qtbl .r{text-align:right}
.qtbl .low{font-size:11px;color:var(--blue);background:var(--blue-l);border-radius:3px;padding:0 4px;margin-left:5px}
.qtbl input[type=checkbox]{cursor:pointer}

.qfoot{display:flex;align-items:center;gap:10px;padding:12px 0 0;font-size:12.5px;color:var(--text3)}
.qfoot .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.qfoot b{color:var(--blue);font-weight:600}

/* 供应商分组：一家一组，组内列包装规格 */
.supg{border:1px solid var(--line);border-radius:9px;margin-bottom:8px;overflow:hidden;background:#fff}
.supg-h{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#FCFDFE;border-bottom:1px solid var(--line2)}
.supg-name{font-size:13.5px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px;min-width:0}
.supg-name > span[data-co]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.supg-meta{font-size:11.5px;color:var(--text4);flex:none}
.supg-ext{display:flex;align-items:center;gap:11px;margin-left:auto}
.supg-ext .it{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text4)}
.supg-ext a.it{cursor:pointer}
.supg-ext a.it:hover{color:var(--blue);text-decoration:none}
.supg-ext .none{color:#BFC5D0}
.supg-h .btn{margin-left:4px;flex:none}
.supg-t{width:100%;border-collapse:collapse;font-size:12px}
.supg-t th{color:var(--text4);font-size:11px;font-weight:400;text-align:left;padding:4px 12px;
  background:#FAFBFD;border-bottom:1px solid var(--line2);white-space:nowrap}
.supg-t td{padding:5px 12px;border-bottom:1px solid var(--line2);color:#3B4351;white-space:nowrap;line-height:1.7}
.supg-t tr:last-child td{border-bottom:0}
.supg-t tr:hover td{background:#FBFCFE}
.supg-t .pk{color:var(--text);font-weight:500}
.supg-t .pu{color:var(--text3);font-size:11.5px}
.supg-t .pr{color:var(--price);font-weight:600;font-size:12.5px}
.supg-t .pr small{font-weight:400;color:var(--text4);font-size:10.5px}
.supg-t .tt{color:var(--text2)}
.supg-t .sl b{font-weight:400;color:var(--text2)}
.supg-t .sl b.now{color:#1E7B4F}
.supg-t .sl i{font-style:normal;color:var(--text4);font-size:11px;margin-left:7px}
.supg-t .low{font-size:10.5px;color:var(--blue);background:var(--blue-l);border-radius:3px;padding:0 4px;margin-left:5px}
.supg-t .icon-btn{width:26px;height:26px}

/* 轻量图标按钮 */
.icon-btn{width:32px;height:32px;padding:0;border:0;background:transparent;border-radius:7px;
  color:#A7AEBB;display:inline-flex;align-items:center;justify-content:center;transition:all .14s;cursor:pointer}
.icon-btn:hover{background:var(--blue-l);color:var(--blue);text-decoration:none}

/* 相关砌块 */
.rel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rel a{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px;color:var(--text);transition:.13s;background:#fff}
.rel a:hover{border-color:var(--blue);text-decoration:none;background:#FCFDFF}
.rel .s{width:36px;height:36px;flex:none;border:1px solid var(--line2);border-radius:7px;
  display:flex;align-items:center;justify-content:center;background:#FCFDFE}
.rel .t{font-size:13px;font-weight:500;line-height:1.45;display:block}
.rel .d{font-size:11.5px;color:var(--text4);margin-top:1px;display:block}

/* ==========================================================
   7. 供应商店铺页
   ========================================================== */
.shop-head{display:flex;gap:16px;border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:14px;
  background:linear-gradient(150deg,#FAFBFF,#fff)}
.shop-logo{width:64px;height:64px;flex:none;border-radius:13px;color:#fff;font-size:26px;font-weight:600;
  display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#1657F0,#5B8DFF)}
.shop-main{flex:1;min-width:0}
.shop-name{font-size:19px;font-weight:600;display:flex;align-items:center;gap:9px;flex-wrap:wrap;line-height:1.4}
.shop-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.shop-intro{font-size:13px;color:var(--text2);line-height:1.75;margin-top:8px}
.shop-main-txt{font-size:12.5px;color:var(--text4);margin-top:6px}
.shop-kpi{display:flex;gap:34px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2);flex-wrap:wrap}
.shop-kpi div{display:flex;flex-direction:column;gap:2px}
.shop-kpi b{font-size:17px;font-weight:700;letter-spacing:-.3px}
.shop-kpi span{font-size:12px;color:var(--text4)}

.cta-card{border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px;background:#fff}
.cta-card .t{font-size:15px;font-weight:600}
.cta-card .d{font-size:12.5px;color:var(--text3);margin-top:5px;line-height:1.65}
.cta-card .btn{width:100%;margin-top:12px}

.cinfo{display:flex;flex-direction:column;gap:10px;font-size:12.5px}
.cinfo .r{display:flex;gap:10px;align-items:flex-start}
.cinfo .k{color:var(--text4);width:44px;flex:none}
.cinfo .v{color:var(--text2);line-height:1.6}

.qtbl .sk{width:32px;height:32px;border:1px solid var(--line2);border-radius:6px;
  display:flex;align-items:center;justify-content:center;background:#FCFDFE}
.qtbl a.tt{color:var(--text);font-weight:500}
.qtbl a.tt:hover{color:var(--blue);text-decoration:none}

/* ==========================================================
   8. 结果页 tab 视图
   ========================================================== */
.rview{display:none}
.rview.on{display:block}

.mrow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line2)}
.mrow-skel{width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:8px;
  display:flex;align-items:center;justify-content:center;background:#fff}
.mrow-body{flex:1;min-width:0}
.mrow-t{font-size:15.5px;font-weight:500;color:var(--link);line-height:1.5}
.mrow-t span{font-size:12.5px;color:var(--text3);font-weight:400;margin-left:5px}
.mrow-t:hover{text-decoration:underline}
.mrow-d{font-size:12.5px;color:var(--text3);margin-top:2px;line-height:1.6}
.mrow-d b{color:var(--blue);font-weight:600}
.mrow-r{text-align:right;flex:none;min-width:94px}
.mrow-pr{font-size:15px;color:var(--price);font-weight:600;line-height:1.4}
.mrow-pr small{font-size:11.5px;color:var(--text4);font-weight:400}
.mrow-sup{font-size:12px;color:var(--text4);margin-top:1px}
.mrow-a{flex:none}

.supc{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid var(--line2);align-items:flex-start}
.supc-logo{width:46px;height:46px;flex:none;border-radius:10px;color:#fff;font-size:19px;font-weight:600;
  display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#1657F0,#5B8DFF)}
.supc-body{flex:1;min-width:0}
.supc-name{font-size:15.5px;font-weight:400;color:var(--text);display:flex;align-items:center;gap:7px;
  flex-wrap:wrap;line-height:1.5}
.supc-meta{font-size:12.5px;color:var(--text3);margin-top:4px;line-height:1.6}
.supc-kpi{display:flex;gap:18px;margin-top:8px;font-size:12.5px;color:var(--text4);flex-wrap:wrap}
.supc-kpi b{color:var(--text);font-weight:600}
.supc-act{display:flex;gap:8px;flex:none;align-items:center;padding-top:2px}

.qtbl .muted{color:var(--text4);font-size:11.5px}

.struct-wrap{display:grid;grid-template-columns:1fr 292px;gap:18px}
.struct-canvas{border:1.5px dashed #D3D9E3;border-radius:10px;min-height:250px;background:#FCFDFE;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:22px;
  cursor:pointer;transition:.15s}
.struct-canvas:hover{border-color:var(--blue);background:#F8FBFF}
.struct-canvas .t{font-size:14px;font-weight:500;color:var(--text2);margin-top:6px}
.struct-canvas .d{font-size:12.5px;color:var(--text4);text-align:center;line-height:1.7}
.struct-canvas .acts{display:flex;gap:8px;margin-top:12px}

/* ==========================================================
   9. 全站页脚
   ========================================================== */
.site-foot{background:#FAFBFC;border-top:1px solid var(--line);margin-top:0;padding:26px 0 14px;text-align:center}
.site-foot .in{max-width:960px;margin:0 auto;padding:0 20px}
.site-foot .flinks{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 22px;font-size:12.5px}
.site-foot .flinks a{color:var(--text2)}
.site-foot .flinks a:hover{color:var(--blue);text-decoration:none}
.site-foot .bar{margin-top:10px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;
  gap:5px 11px;font-size:11.5px;color:var(--text4);line-height:1.7}
.site-foot .bar i{width:1px;height:9px;background:#DDE1E8;display:inline-block;flex:none}
/* 页脚贴底：内容不足一屏时不被拉到半空 */
body.has-sitefoot{display:flex;flex-direction:column;min-height:100vh}
/* 显式撑满：避免 flex 列把子项压成 fit-content，导致 max-width 容器不居中 */
body.has-sitefoot > *{width:100%;min-width:0}
body.has-sitefoot > .site-foot{margin-top:auto;flex:none}
/* 首页内容在「页眉—页脚」之间垂直居中，略微上偏；内容超高时自然撑开不裁切 */
body[data-page="home"] .home{flex:1 0 auto;min-height:0;justify-content:center;padding:0 24px 6vh}

/* ==========================================================
   10. 购物车 / 结算
   ========================================================== */
.cart-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:7px;color:var(--text2)}
.cart-btn:hover{background:var(--blue-l);color:var(--blue);text-decoration:none}
.cart-btn i{position:absolute;top:-3px;right:-4px;min-width:16px;height:16px;border-radius:8px;
  background:var(--price);color:#fff;font-size:10.5px;font-style:normal;font-weight:500;
  display:none;align-items:center;justify-content:center;padding:0 4px;line-height:1}

.cart-head,.citem{display:grid;grid-template-columns:1.7fr 1fr 92px 106px 100px 32px;gap:10px;align-items:center}
.cart-head{padding:9px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--text4)}
.citem{padding:14px 0;border-bottom:1px solid var(--line2)}
.citem:last-child{border-bottom:0}
.citem-name{font-size:14px;color:var(--text);font-weight:500}
.citem-name:hover{color:var(--blue);text-decoration:none}
.citem-cas{font-size:11.5px;color:var(--text4);margin-top:2px}
.citem-spec{font-size:13px;color:var(--text2)}
.citem-spec span{display:block;font-size:11.5px;color:var(--text4);margin-top:2px}
.citem-pr{font-size:13px;color:var(--price);font-weight:600}
.citem-pr i{font-style:normal;font-size:11px;color:var(--text4);font-weight:400}
.citem-sum{font-size:14px;font-weight:600;color:var(--text)}

.qty{display:flex;align-items:center;border:1px solid #DDE1E8;border-radius:6px;overflow:hidden;width:102px}
.qty button{width:26px;height:28px;border:0;background:#fff;color:var(--text2);font-size:14px;line-height:1;cursor:pointer}
.qty button:hover{background:var(--bg2);color:var(--blue)}
.qty input{width:48px;height:28px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);
  text-align:center;font-size:13px;outline:0;color:var(--text)}

.cart-empty{padding:54px 20px;text-align:center}
.cart-empty .t{font-size:15px;font-weight:500;margin-top:12px}
.cart-empty .d{font-size:13px;color:var(--text4);margin-top:6px;line-height:1.7}
.cart-empty .btn{margin-top:18px}

.sumrow{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;
  color:var(--text2);padding:7px 0}
.sumrow b{color:var(--text);font-weight:500}
.sumrow.total{border-top:1px solid var(--line2);margin-top:8px;padding-top:12px;font-size:13.5px}
.sumrow.total b{color:var(--price);font-size:20px;font-weight:700;letter-spacing:-.3px}
.sumtip{font-size:11.5px;color:var(--text4);margin-top:10px;line-height:1.65}

.co-item{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line2);font-size:13px}
.co-item:last-child{border-bottom:0}
.co-name{flex:1;color:var(--text);min-width:0}
.co-name span{display:block;font-size:11.5px;color:var(--text4);margin-top:2px}
.co-qty{color:var(--text3);font-size:12.5px;flex:none}
.co-pr{font-weight:600;min-width:88px;text-align:right;flex:none}

/* 曝光柱状图 */
.bars{display:flex;align-items:flex-end;gap:16px;height:132px}
.bars .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%}
.bars .bar{width:100%;max-width:46px;background:linear-gradient(180deg,#6D9BFF,#1657F0);
  border-radius:4px 4px 0 0;min-height:6px}
.bars .v{font-size:11.5px;color:var(--text2)}
.bars .l{font-size:11.5px;color:var(--text4)}

/* 运营后台 */
.admin-wrap{max-width:1080px;margin:0 auto;padding:22px 20px 60px}
.admin-top{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.admin-top .t{font-size:18px;font-weight:600}
.admin-top .d{font-size:12.5px;color:var(--text3);padding-left:12px;border-left:1px solid var(--line)}

/* 按供应商分组 */
.cgroup{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}
.cgroup:last-child{margin-bottom:0}
.cgroup-h{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#FCFDFE;border-bottom:1px solid var(--line2)}
.cgroup-name{font-size:13.5px;font-weight:500;color:var(--text)}
.cgroup-meta{font-size:12px;color:var(--text4)}
.cgroup-sum{margin-left:auto;font-size:12.5px;color:var(--text2)}
.cgroup-sum b{color:var(--text);font-weight:600}
.cgroup .cart-head,.cgroup .citem{padding-left:14px;padding-right:14px}
.cgroup .citem:last-child{border-bottom:0}

.co-group{padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--line2)}
.co-group:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.co-group-h{display:flex;justify-content:space-between;align-items:center;padding:10px 0 4px;
  font-size:12.5px;color:var(--text2)}
.co-group-h span{font-weight:500;color:var(--text)}
.co-group-h b{color:var(--text);font-weight:600}

.done-orders{margin:18px auto 0;max-width:430px;text-align:left}
.done-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);
  border-radius:8px;margin-bottom:8px;font-size:12.5px;background:#FCFDFE}
.done-row .sup{color:var(--text);font-weight:500}
.done-row .no{color:var(--text3);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px}
.done-row .amt{margin-left:auto;color:var(--price);font-weight:600}

/* ==========================================================
   11. 详情页三栏（筛选 / 内容 / 广告）
   ========================================================== */
.pdp .rwrap{max-width:1460px;gap:26px}
.pdp .rmain{padding-bottom:56px}
.pdp .rside{width:288px}

.filters{width:188px;flex:none;align-self:flex-start;position:sticky;top:74px;padding:14px 0 18px}

.fhead{display:flex;align-items:center;gap:7px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:0}
.fhead .t{font-size:13px;font-weight:600;color:var(--text);letter-spacing:.2px}
.fhead .c{font-size:11px;color:#fff;background:var(--blue);border-radius:9px;padding:0 6px;line-height:16px;
  display:none;font-weight:500}

.factive{display:none;flex-wrap:wrap;gap:6px;margin-bottom:11px}
.factive .a{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 7px;border-radius:11px;
  background:var(--blue-l);color:var(--blue);font-size:11.5px;border:0;cursor:pointer;transition:.12s}
.factive .a:hover{background:#D9E6FF}
.factive .a i{font-style:normal;font-size:12px;line-height:1;opacity:.7}

.fgroup{padding:11px 0;border-bottom:1px solid var(--line2)}
.fgroup:last-of-type{border-bottom:0;padding-bottom:4px}
.fgroup:first-of-type{padding-top:0}
.fh{font-size:12.5px;color:var(--text);font-weight:500;margin-bottom:7px;display:flex;align-items:center;gap:6px}
.fh::before{content:"";width:3px;height:10px;border-radius:2px;background:var(--blue);opacity:.8;flex:none}

.fopt{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--text2);font-size:13px;
  cursor:pointer;line-height:1.5;transition:color .12s}
.fopt input{appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1.2px solid #CBD2DE;
  border-radius:3.5px;background:#fff;margin:0;cursor:pointer;position:relative;flex:none;
  transition:border-color .12s,background .12s}
.fopt:hover input{border-color:var(--blue)}
.fopt input:checked{background:var(--blue);border-color:var(--blue)}
.fopt input:checked::after{content:"";position:absolute;left:4px;top:1.5px;width:4px;height:7px;
  border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(42deg)}
.fopt:hover{color:var(--text)}
.fopt:has(input:checked){color:var(--text);font-weight:500}
.fopt:has(input:checked) i{background:var(--blue-l);color:var(--blue)}
.fopt i{margin-left:auto;font-style:normal;font-size:11px;color:var(--text4);background:#F2F4F8;
  border-radius:4px;padding:0 5px;line-height:16px;min-width:18px;text-align:center;font-weight:400}

.fchips{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fchip{height:28px;padding:0 6px;border-radius:14px;border:1px solid #E3E7EE;background:#fff;
  font-size:12px;color:var(--text2);cursor:pointer;transition:.13s;white-space:nowrap}
.fchip:hover{border-color:var(--blue);color:var(--blue)}
.fchip.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:500}

.fclear{display:block;width:100%;height:31px;border:1px solid #E3E7EE;border-radius:7px;background:#fff;
  font-size:12.5px;color:var(--text2);cursor:pointer;margin-top:13px;transition:.13s;display:none}
.fclear:hover{border-color:var(--blue);color:var(--blue);background:#FCFDFF}

.qsortbar{display:flex;align-items:center;gap:10px;margin-bottom:11px;font-size:12.5px;color:var(--text4)}
.qsortbar .r{margin-left:auto;display:flex;align-items:center;gap:8px}
.qsortbar .r b{color:var(--text);font-weight:500}

/* ==========================================================
   12. 询单多规格 / 工商信息浮层
   ========================================================== */
.spec-list{display:flex;flex-direction:column;gap:8px}
.spec-row{display:grid;grid-template-columns:1fr 74px 116px 28px;gap:8px;align-items:center}
.spec-row .inp,.spec-row .sel2{height:34px;font-size:13px}
.spec-del{width:28px;height:34px;border:0;background:transparent;color:var(--text4);font-size:16px;
  cursor:pointer;border-radius:6px;line-height:1}
.spec-del:hover{background:#FDECEA;color:#C0342B}
.spec-add{margin-top:9px;font-size:12.5px;color:var(--blue);background:none;border:0;cursor:pointer;padding:0}
.spec-add:hover{text-decoration:underline}
.spec-hint{font-size:11.5px;color:var(--text4);font-weight:400;margin-left:6px}

.co-card{position:fixed;z-index:90;width:326px;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 14px 36px rgba(16,24,40,.15);opacity:0;pointer-events:none;
  transition:opacity .13s;font-size:12.5px;overflow:hidden}
.co-card.on{opacity:1;pointer-events:auto}
.co-preview .co-card{position:static;opacity:1;pointer-events:auto;width:100%;box-shadow:none}
.co-h{padding:11px 13px 9px;border-bottom:1px solid var(--line2)}
.co-h .n{font-size:13px;font-weight:600;color:var(--text);line-height:1.45}
.co-h .s{display:flex;gap:9px;align-items:center;margin-top:5px;font-size:11.5px;color:var(--green)}
.co-h .s .tag{font-size:10.5px;line-height:15px;padding:0 4px}
.co-b{padding:8px 13px 10px}
.co-row{display:flex;gap:10px;padding:3px 0;line-height:1.55}
.co-row .k{color:var(--text4);width:92px;flex:none;font-size:11.5px}
.co-row .v{color:var(--text2);flex:1;word-break:break-word}
.co-f{padding:7px 13px;border-top:1px solid var(--line2);font-size:11px;color:var(--text4);background:#FCFDFE}
[data-co]{cursor:help;border-bottom:1px dashed transparent}
[data-co]:hover{border-bottom-color:#CBD2DE}

/* 供应商卡底部：联系方式与官方页 */

/* 店铺内视图右栏 */
.shopc-kpi{display:flex;margin-top:14px;padding:11px 0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.shopc-kpi div{flex:1;text-align:center}
.shopc-kpi b{display:block;font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.2px}
.shopc-kpi span{display:block;font-size:11.5px;color:var(--text4);margin-top:2px}

/* CAS 号链接：默认与正文同色，悬停才显形 */
a.cas-link{color:inherit;border-bottom:1px dashed rgba(22,87,240,.32);text-decoration:none;transition:.12s}
a.cas-link:hover{color:var(--blue);border-bottom-color:var(--blue);text-decoration:none}
a.tt-link{color:var(--text);font-weight:500}
a.tt-link:hover{color:var(--blue);text-decoration:none}
.phead-meta a.cas-link{color:var(--text);font-weight:500}

/* 化合物百科 */
.csec-text{font-size:13.5px;color:var(--text2);line-height:1.85}
.cnote{font-size:12px;color:var(--text4);line-height:1.7;margin-top:12px;padding-top:10px;
  border-top:1px dashed var(--line)}
.phead-skel{position:relative}
.skel-tag{position:absolute;right:6px;top:5px;font-size:10px;color:var(--text4);letter-spacing:.2px}

/* ==========================================================
   13. 广告投放表单：分段控件 / CAS 标签输入
   ========================================================== */
.seg{display:flex;border:1px solid #DDE1E8;border-radius:8px;overflow:hidden}
.seg-i{flex:1;height:34px;border:0;background:#fff;font-size:13px;color:var(--text2);cursor:pointer;transition:.13s}
.seg-i + .seg-i{border-left:1px solid #DDE1E8}
.seg-i:hover:not(:disabled){color:var(--blue)}
.seg-i.on{background:var(--blue-l);color:var(--blue);font-weight:500}
.seg-i:disabled{color:#C3CAD6;background:#FAFBFC;cursor:not-allowed;text-decoration:line-through}

.fhint{font-size:11.5px;color:var(--text4);margin-top:6px;line-height:1.6}
.fhint b{color:var(--text2);font-weight:500}

.tag-input{display:flex;flex-wrap:wrap;gap:6px;border:1px solid #DDE1E8;border-radius:7px;
  padding:6px 8px;min-height:38px;align-items:center;background:#fff;transition:border-color .15s}
.tag-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,87,240,.1)}
.tag-inp{flex:1;min-width:130px;border:0;outline:0;height:24px;font-size:13px;background:transparent;color:var(--text)}
.cas-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 7px;border-radius:11px;
  background:var(--blue-l);color:var(--blue);font-size:12px;line-height:1}
.cas-chip i{cursor:pointer;font-style:normal;opacity:.65;font-size:13px;line-height:1}
.cas-chip i:hover{opacity:1}
.cas-chip.bad{background:#FDECEA;color:#C0342B}

/* 报价抽屉：多规格 + 关联产品 */
.dw-req{display:flex;flex-direction:column;gap:6px}
.dw-req-i{display:flex;align-items:center;gap:9px;padding:8px 11px;background:#FCFDFE;
  border:1px solid var(--line2);border-radius:7px;font-size:12.5px;color:var(--text2)}
.dw-req-i b{color:var(--text);font-weight:600;font-size:13px}
.dw-req-i span{color:var(--text3)}
.dw-req-i span:last-child{margin-left:auto;color:var(--text4);font-size:11.5px}

.dw-quote{display:flex;flex-direction:column;gap:10px}
.qt-row{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff}
.qt-req{font-size:13px;font-weight:500;color:var(--text);margin-bottom:9px;display:flex;align-items:center;gap:8px}
.qt-req span{font-weight:400;font-size:11.5px;color:var(--text4)}
.qt-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qt-fields label{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text4);min-width:0}
.qt-fields label:last-child{grid-column:1 / -1}
.qt-fields .inp{height:30px;padding:0 8px;font-size:12.5px;width:100%;min-width:0}
.qt-fields .sel2{height:30px;font-size:12.5px;padding:0 8px}
.qt-fields i{font-style:normal;font-size:11px;color:var(--text4);flex:none}

.rel-row{display:grid;grid-template-columns:1fr 76px 70px 26px;gap:8px;margin-bottom:8px;align-items:center}
.rel-row .inp{height:30px;font-size:12.5px;padding:0 8px}
.rel-row .spec-del{height:30px;font-size:14px}

/* 企业资料核验门禁 */
.lock-view{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 150px)}
.lock-card{max-width:540px;text-align:center;padding:40px 34px;background:#fff;
  border:1px solid var(--line);border-radius:14px}
.lock-ic{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;background:#FFF3E8;color:#C2410C}
.lock-ic.ok{background:#E9F7EF;color:#1E7B4F}
.lock-ic.bad{background:#FDECEA;color:#C0342B}
.lock-t{font-size:19px;font-weight:600;letter-spacing:.2px}
.lock-d{font-size:13.5px;color:var(--text2);line-height:1.9;margin-top:10px}
.lock-meta{display:inline-flex;gap:14px;margin-top:16px;font-size:12.5px;color:var(--text3);
  background:#F8F9FB;border-radius:8px;padding:8px 16px}
.lock-acts{display:flex;gap:10px;justify-content:center;margin-top:24px;flex-wrap:wrap}
.lock-tip{font-size:12px;color:var(--text4);margin-top:18px;line-height:1.7}

.vbanner{display:flex;align-items:center;gap:10px;padding:9px 14px;background:#FFF8EC;
  border:1px solid #FDE7C7;border-radius:8px;font-size:12.5px;color:#8A5A1E;margin-bottom:14px}
.vbanner a{color:#C2410C;font-weight:500;margin-left:auto}

.side-nav a.nav-locked{opacity:.4;cursor:not-allowed}

/* 导入任务：明细展开行 */
.tbl tr.tdet-row td{padding:0 14px 12px;border-bottom:1px solid var(--line2);background:#fff}
.tdet{padding:12px 14px;background:#FCFDFE;border:1px solid var(--line2);border-radius:8px;
  font-size:12.5px;color:var(--text2);line-height:1.7}
.tdet ul{margin:6px 0 0;padding-left:18px;line-height:1.9}
.tdet a{color:var(--blue)}

/* 订单详情 */
.o-steps{display:flex;margin-bottom:20px}
.os-i{flex:1;position:relative;padding-top:19px;font-size:11px;color:var(--text4)}
.os-i::before{content:"";position:absolute;top:3px;left:0;width:9px;height:9px;border-radius:50%;
  background:#E3E7EE;box-shadow:0 0 0 2px #fff, 0 0 0 3px #E3E7EE}
.os-i::after{content:"";position:absolute;top:7px;left:12px;right:0;height:1px;background:#E3E7EE}
.os-i:last-child::after{display:none}
.os-i.done::before{background:var(--blue);box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--blue)}
.os-i.done::after{background:var(--blue)}
.os-i b{display:block;font-weight:500;color:var(--text3);margin-bottom:2px;font-size:12.5px}
.os-i.done b{color:var(--text)}

.od-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:10px}
.od-tbl th{color:var(--text4);font-weight:400;font-size:11.5px;text-align:left;
  padding:6px 0;border-bottom:1px solid var(--line2)}
.od-tbl td{padding:9px 0;border-bottom:1px solid var(--line2);color:var(--text2);vertical-align:top}
.od-tbl .r{text-align:right}
.od-tbl .muted{font-size:11px;color:var(--text4);margin-top:2px}

.od-sum{border-top:1px solid var(--line2);padding-top:8px;margin-bottom:18px}
.od-sum div{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text2);padding:4px 0}
.od-sum b{color:var(--text);font-weight:500}
.od-sum .total{border-top:1px dashed var(--line2);margin-top:4px;padding-top:9px}
.od-sum .total b{color:var(--price);font-size:17px;font-weight:700}

/* ==========================================================
   产品目录 V2 · 产品级列表 + 产品级编辑
   ========================================================== */
.mon{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;letter-spacing:-.2px}

/* 统计条 */
.catstat{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--text3);
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin-bottom:12px}
.catstat b{color:var(--text);font-weight:600}
.catstat b.warn{color:#C0342B}
.catstat-r{margin-left:auto;color:var(--text4)}

/* 列表 */
.cattbl td{vertical-align:top;padding:12px 14px}
.cattbl .catp a.tt{font-weight:500;color:var(--text)}
.cattbl .catp a.tt:hover{color:var(--blue)}
.cattbl .catp .muted{font-size:11.5px;color:var(--text4);line-height:1.5}
.cattbl .miss{color:#C0342B;font-size:12.5px}
.cattbl .fl{margin-top:4px;display:flex;gap:3px;flex-wrap:wrap}
.cmpl{width:56px;height:5px;border-radius:3px;background:#EDEFF3;overflow:hidden;display:inline-block;vertical-align:middle}
.cmpl i{display:block;height:100%;border-radius:3px}
.cmpl-t{font-size:11.5px;color:var(--text3);margin-left:6px;vertical-align:middle}
.mini-sw{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);cursor:pointer}
.mini-sw input{display:none}
.mini-sw span{width:28px;height:16px;border-radius:8px;background:#DDE1E8;position:relative;transition:.16s;flex:none}
.mini-sw span::after{content:'';position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:.16s}
.mini-sw input:checked + span{background:var(--blue)}
.mini-sw input:checked + span::after{left:14px}
.catbulk{display:none;align-items:center;gap:9px;padding:9px 16px;background:var(--blue-l);
  border-bottom:1px solid #D8E5FF;font-size:12.5px;color:var(--blue)}
.catbulk b{font-weight:600}

/* 编辑页头 */
.ce-head{display:flex;align-items:flex-start;gap:14px;padding:0 0 14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.ce-back{width:30px;height:30px;flex:none;border:1px solid #DDE1E8;background:#fff;border-radius:8px;
  font-size:15px;color:var(--text2);cursor:pointer;line-height:1;margin-top:2px}
.ce-back:hover{border-color:var(--blue);color:var(--blue)}
.ce-id{flex:1;min-width:0}
.ce-num{font-size:12px;color:var(--text4);display:flex;align-items:center;gap:7px}
.ce-id h1{font-size:19px;font-weight:600;margin:2px 0 3px;letter-spacing:-.2px}
.ce-sub{font-size:12.5px;color:var(--text3);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ce-acts{display:flex;gap:8px;flex:none}

/* 三栏骨架 */
.ce-wrap{display:flex;gap:16px;align-items:flex-start}
.ce-nav{width:152px;flex:none;position:sticky;top:68px;display:flex;flex-direction:column;gap:1px}
.ce-nav a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;
  font-size:13px;color:var(--text2);transition:.13s}
.ce-nav a i{font-style:normal;width:17px;height:17px;flex:none;border-radius:50%;background:#F0F2F6;
  color:var(--text4);font-size:10.5px;display:flex;align-items:center;justify-content:center}
.ce-nav a:hover{background:#F7F8FA;color:var(--text)}
.ce-nav a.on{background:var(--blue-l);color:var(--blue);font-weight:500}
.ce-nav a.on i{background:var(--blue);color:#fff}
.ce-main{flex:1;min-width:0}
.ce-side{width:268px;flex:none;position:sticky;top:68px;display:flex;flex-direction:column;gap:12px}

/* 分区卡 */
.csec{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}
.csec-h{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.csec-h .t{font-size:14px;font-weight:600}
.csec-h .n{font-size:12px;color:var(--text4)}
.csec-h .n i{font-style:normal;color:var(--price)}
.csec-h .r{margin-left:auto;display:flex;gap:8px}
.csec-b{padding:18px 16px}
.csec-note{background:#F8FAFF;border-top:1px solid #E9F0FE;padding:12px 16px;font-size:12.5px;
  color:var(--text2);line-height:1.8}
.csec-note b{color:var(--text);font-weight:600}
.csec-note ul{margin:6px 0 0;padding-left:17px}
.csec-note li{margin-bottom:3px}
.csec-note .mon{background:#EEF3FE;border-radius:3px;padding:0 4px}
.wnote{background:#FFF8F1;border:1px solid #FBE3C9;color:#9A4B0C;border-radius:7px;
  padding:8px 12px;font-size:12.5px;margin-top:10px}

/* 表单 */
.frm{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
.frm .field.full{grid-column:1/-1}
.frm .field{margin-bottom:14px}
.fhint{font-size:11.5px;color:var(--text4);margin-left:8px}
.ftip{font-size:11.5px;color:var(--text3);line-height:1.65;margin-top:5px;background:#FAFBFD;
  border-left:2px solid #DDE1E8;padding:5px 8px;border-radius:0 4px 4px 0}
.ftip a{color:var(--blue)}
.fsub{display:flex;align-items:baseline;gap:9px;font-size:13px;font-weight:500;color:var(--text);
  margin-bottom:10px;padding-bottom:7px;border-bottom:1px dashed var(--line)}
.fsub span{font-size:11.5px;color:var(--text4);font-weight:400}
.meta-row{display:flex;gap:18px;flex-wrap:wrap;font-size:11.5px;color:var(--text4);
  margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}

/* 标签输入 */
.tagbox{display:flex;flex-wrap:wrap;gap:5px;min-height:36px;align-items:center;padding:5px 7px;
  border:1px solid #DDE1E8;border-radius:7px;background:#fff}
.tagbox:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,87,240,.10)}
.tagbox.sel{border:0;padding:0;gap:6px}
.tg{display:inline-flex;align-items:center;gap:4px;background:#F1F4F9;border-radius:4px;
  padding:2px 5px 2px 7px;font-size:12px;color:var(--text2)}
.tg b{color:var(--text4);cursor:pointer;font-weight:400;font-size:13px;line-height:1}
.tg b:hover{color:#C0342B}
.tagin{flex:1;min-width:110px;border:0;outline:0;font-size:13px;height:26px;background:transparent}
.cchip{height:27px;padding:0 11px;border-radius:14px;border:1px solid #E3E7EE;background:#fff;
  font-size:12.5px;color:var(--text2);cursor:pointer;transition:.13s}
.cchip:hover{border-color:var(--blue);color:var(--blue)}
.cchip.on{background:var(--blue);border-color:var(--blue);color:#fff}

/* 开关 */
.swrow{display:flex;align-items:flex-start;gap:9px;cursor:pointer;padding:9px 11px;border-radius:8px;
  border:1px solid var(--line);transition:.13s}
.swrow:hover{border-color:#DDE1E8;background:#FCFDFF}
.swrow input{display:none}
.swi{width:32px;height:18px;border-radius:9px;background:#DDE1E8;position:relative;transition:.16s;flex:none;margin-top:1px}
.swi::after{content:'';position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;
  background:#fff;transition:.16s;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.swrow input:checked + .swi{background:var(--blue)}
.swrow input:checked + .swi::after{left:16px}
.swt{font-size:13px;color:var(--text);line-height:1.5}
.swt em{display:block;font-style:normal;font-size:11.5px;color:var(--text4);margin-top:1px}
.swgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.swblock{margin-bottom:6px}

/* 包装表 */
.pktbl{font-size:13px}
.pktbl th{white-space:nowrap;padding:9px 8px}
.pktbl td{padding:8px;border-bottom:1px solid var(--line2);vertical-align:top}
.pktbl .inp{height:32px;font-size:12.5px;padding:0 8px}
.pktbl .sel2{height:32px;font-size:12.5px;padding:0 6px;background-position:right 6px center}
.pktbl .c{text-align:center}
.pk-sku{width:100%}
.pk-q{display:flex;gap:4px}
.pk-q .inp{width:60px;flex:none}
.pk-q .sel2{width:62px;flex:none}
.pk-calc{font-size:12.5px;color:var(--text);white-space:nowrap;padding-top:15px !important}
.pk-calc small{color:var(--text4);font-size:11px}
.pk-disc{display:block;font-size:10.5px;color:#1E7B4F;margin-top:2px}
.pk-del{width:24px;height:24px;border:0;background:transparent;color:var(--text4);cursor:pointer;
  font-size:16px;line-height:1;border-radius:5px}
.pk-del:hover{background:#FDECEA;color:#C0342B}
.pksum{display:flex;gap:22px;flex-wrap:wrap;padding:11px 16px;background:#FAFBFD;
  border-top:1px solid var(--line2);font-size:12.5px;color:var(--text3)}
.pksum b{color:var(--text);font-weight:600}
.pksum .ok{color:#1E7B4F}
.pksum .bad{color:#C2410C}

/* 上架状态选择 */
.stpick{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.stopt{border:1px solid #E3E7EE;border-radius:9px;padding:11px 12px;cursor:pointer;transition:.13s;
  display:block}
.stopt:hover{border-color:#C9D6F0}
.stopt input{display:none}
.stopt b{display:block;font-size:13px;color:var(--text);font-weight:500}
.stopt em{display:block;font-style:normal;font-size:11px;color:var(--text4);margin-top:3px;line-height:1.55}
.stopt.on{border-color:var(--blue);background:var(--blue-l)}
.stopt.on b{color:var(--blue)}

/* 运营位申请 */
.oplist{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.oprow{display:flex;align-items:center;gap:12px;padding:10px 13px;background:#fff;border-bottom:1px solid var(--line2)}
.oprow:last-child{border-bottom:0}
.oprow.on{background:#F6FBF8}
.opn{flex:1}
.opn b{font-size:13px;font-weight:500;color:var(--text);display:block}
.opn em{font-style:normal;font-size:11.5px;color:var(--text4)}

/* 图片格 */
.phgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.phcell{position:relative;aspect-ratio:1/1;border:1px dashed #DDE1E8;border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  cursor:pointer;color:var(--text4);transition:.13s;background:#FCFDFE}
.phcell:hover{border-color:var(--blue);color:var(--blue);background:#F8FAFF}
.phcell span{font-size:19px;line-height:1}
.phcell em{font-style:normal;font-size:11px}
.phcell.on{border-style:solid;border-color:var(--line);background:#F1F4F9;cursor:default}
.phph{font-size:22px;color:#C9D0DC;font-weight:600}
.phmain{position:absolute;left:5px;top:5px;background:var(--blue);color:#fff;font-size:10px;
  padding:1px 5px;border-radius:3px}
.phdel,.phset{position:absolute;right:4px;background:#fff;border:1px solid var(--line);border-radius:4px;
  font-size:10.5px;padding:1px 4px;cursor:pointer;color:var(--text3);font-weight:400;line-height:1.5}
.phdel{top:4px}
.phset{bottom:4px}
.phdel:hover{color:#C0342B;border-color:#F5C6C0}
.phset:hover{color:var(--blue);border-color:#C9D6F0}

/* 附件 */
.attlist{display:flex;flex-direction:column;gap:8px}
.attrow{display:flex;align-items:center;gap:9px}
.attk{width:52px;flex:none;font-size:12.5px;color:var(--text2);font-weight:500}
.attf{font-size:12px;color:var(--text2);background:#F4F6F9;border-radius:4px;padding:3px 8px;
  font-family:ui-monospace,Menlo,Consolas,monospace}
.attx{border:0;background:transparent;font-size:11.5px;color:var(--text4);cursor:pointer}
.attx:hover{color:#C0342B}
.attu{flex:1;height:32px;font-size:12px}

/* 关联产品 */
.rellist{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.relrow{display:flex;align-items:center;gap:10px;padding:7px 11px;background:#FAFBFD;
  border:1px solid var(--line);border-radius:7px}
.relrow .mon{color:var(--text3)}
.reln{flex:1;font-size:13px}
.reladd{display:flex;gap:8px}
.reladd .inp{flex:1}
.empty-sm{font-size:12.5px;color:var(--text4);padding:14px 0}

/* 右侧栏 */
.sidecard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}
.sc-h{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:11px;line-height:1.5}
.sc-h em{display:block;font-style:normal;font-size:11px;color:var(--text4);font-weight:400}
.cmpl-big{display:flex;align-items:center;gap:10px}
.cmpl-big b{font-size:22px;font-weight:600;letter-spacing:-.5px}
.cmpl-bar{flex:1;height:6px;border-radius:3px;background:#EDEFF3;overflow:hidden}
.cmpl-bar i{display:block;height:100%;border-radius:3px;transition:width .2s}
.cmpl-miss{margin-top:11px;display:flex;flex-direction:column;gap:1px}
.cmpl-miss a{font-size:12px;color:var(--text2);padding:4px 0;display:flex;align-items:center;gap:6px;
  border-bottom:1px dashed #F1F3F7}
.cmpl-miss a:hover{color:var(--blue)}
.cmpl-miss a .rq{font-size:10px;color:#C0342B;background:#FDECEA;border-radius:3px;padding:0 4px;font-weight:400}
.cmpl-miss .more{font-size:11.5px;color:var(--text4);padding-top:6px}
.cmpl-ok{font-size:12px;color:#1E7B4F;background:#F0F9F4;border-radius:6px;padding:8px 10px;margin-top:11px}

.preview-card{border:1px solid var(--line);border-radius:8px;padding:12px;background:#FCFDFF}
.pc-t{font-size:14px;font-weight:500;color:var(--text);line-height:1.45}
.pc-d{font-size:11.5px;color:var(--text4);margin-top:3px;line-height:1.5}
.pc-p{margin-top:8px;display:flex;align-items:baseline;gap:8px}
.pc-p{font-size:15px;color:var(--price);font-weight:600}
.pc-p em{font-style:normal;font-size:12px;color:var(--text4);font-weight:400}
.pc-p span{font-size:11.5px;color:var(--text3);font-weight:400}
.pc-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.pc-tags span{font-size:10.5px;background:#F2F4F8;color:var(--text2);border-radius:3px;padding:1px 5px}
.pc-tags .d{background:#EAF1FF;color:var(--blue)}
.sidehelp ol{margin:0;padding-left:16px;font-size:11.5px;color:var(--text2);line-height:1.85}
.sidehelp li{margin-bottom:4px}

/* 底部条 */
.ce-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;margin-top:16px;
  padding:12px 16px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:10px;z-index:20}
.ce-tip{font-size:12px;color:var(--text4)}
.ce-foot .r{margin-left:auto;display:flex;gap:8px}

@media(max-width:1300px){
  .ce-side{display:none}
  .stpick{grid-template-columns:1fr 1fr}
}
@media(max-width:1080px){
  .ce-wrap{flex-wrap:wrap}
  .ce-nav{width:100%;position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}
  .ce-nav a{white-space:nowrap;padding:6px 10px}
  .frm{grid-template-columns:1fr}
  .phgrid{grid-template-columns:repeat(3,1fr)}
  .swgrid{grid-template-columns:1fr}
}

/* ==========================================================
   广告申请 · 宽弹窗 + 实时预览
   ========================================================== */
.modal-wide{width:920px;max-width:calc(100vw - 40px)}
.adb{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;align-items:start}
.adform{min-width:0}
.adsec{display:flex;align-items:baseline;gap:9px;margin:18px 0 12px;padding-top:14px;
  border-top:1px dashed var(--line)}
.adsec:first-child{margin-top:0;padding-top:0;border-top:0}
.adsec i{font-style:normal;font-size:12.5px;font-weight:600;color:var(--text)}
.adsec span{font-size:11.5px;color:var(--text4)}

.adprev{position:sticky;top:0}
.adprev-h{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:9px;line-height:1.5}
.adprev-h span{display:block;font-size:11px;color:var(--text4);font-weight:400;margin-top:2px}
.adprev-stage{background:#F7F8FA;border:1px solid var(--line);border-radius:10px;padding:16px;
  min-height:200px;display:flex;align-items:flex-start;justify-content:center}
.adprev-stage.st-side .pv{max-width:258px}
.adprev-note{margin-top:11px;font-size:11.5px;color:var(--text4);line-height:1.85}
.adprev-note b{display:inline-block;font-weight:500;color:var(--text3);margin-right:6px}

.pv{position:relative;width:100%;border-radius:9px;overflow:hidden;background:#fff;
  border:1px solid var(--line);box-shadow:0 6px 18px rgba(16,24,40,.06)}
.pv-ad{display:inline-block;font-size:10px;line-height:15px;padding:0 4px;border-radius:3px;
  background:#EFF1F5;color:var(--text3);margin-right:6px;vertical-align:1px;flex:none}
.pv-kind{font-size:10.5px;color:var(--text4)}
.pv-h{font-size:14px;font-weight:600;color:var(--text);line-height:1.42}
.pv-s{font-size:11.5px;color:var(--text3);margin-top:3px;line-height:1.55}
.pv-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.pv-tags span{font-size:10.5px;background:#F1F4F9;color:var(--text2);border-radius:3px;padding:1px 5px}
.pv-cta{display:inline-block;margin-top:10px;font-size:11.5px;color:#fff;background:var(--blue);
  border-radius:5px;padding:3px 11px;flex:none}
.pv-ava{width:34px;height:34px;border-radius:9px;color:#fff;font-size:14px;font-weight:600;
  display:flex;align-items:center;justify-content:center;flex:none;
  background:linear-gradient(140deg,#1657F0,#5B8DFF)}
.pv-thumb{width:34px;height:34px;border-radius:7px;background:#F1F4F9;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:11px;color:#B9C0CC;flex:none}
.pv-thumb.wide{width:56px;height:40px}

/* 橱窗（右侧 hero） */
.pv-hero{padding:14px;background:linear-gradient(158deg,#1E5BF5,#123A9E);border:0}
.pv-hero .pv-ad{background:rgba(255,255,255,.18);color:#DCE7FF}
.pv-hero .pv-kind{color:#C5D6FF}
.pv-hero .pv-h{color:#fff;font-size:14.5px}
.pv-hero .pv-s{color:#D3E0FF}
.pv-hero .pv-tags span{background:rgba(255,255,255,.16);color:#E6EEFF}
.pv-hero .pv-cta{background:#fff;color:#123A9E;font-weight:500}
.pv-hero .pv-ava{background:rgba(255,255,255,.2)}
.pv-hero .pv-thumb{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.28);color:#DCE7FF}
.pv-heroTop{display:flex;align-items:center;gap:7px}
.pv-hrow{display:flex;gap:10px;align-items:flex-start;margin-top:10px}
.pv-hrow > div{min-width:0}

/* 结果流图文 */
.pv-row{display:flex;align-items:center;gap:11px;padding:12px 14px}
.pv-row .pv-cta{margin-top:0}
.pv-rowbody{flex:1;min-width:0}

/* 右侧推荐 */
.pv-side{padding:12px}
.pv-sideIn{display:flex;gap:9px;align-items:center;margin-top:9px}
.pv-side .pv-h{font-size:13px}
.pv-side .pv-cta{margin-top:9px}

/* 店铺横幅 */
.pv-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;
  background:linear-gradient(90deg,#F3F7FF,#FFF)}
.pv-banner .pv-cta{margin-top:0}
.pv-banner .pv-tags{margin-top:0;flex:none}
.pv-banner .pv-rowbody{flex:1;min-width:0}

/* 结果流顶部 · 三条长图文 */
.pv-long{width:100%;display:grid;gap:6px;align-items:stretch}
.pv-long .pv-longItem{background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:10px 12px;box-shadow:0 4px 14px rgba(16,24,40,.06)}
.pv-longT{font-size:13.5px;font-weight:500;color:var(--link);line-height:1.45}
.pv-longU{font-size:11px;color:#1E7B4F;margin-top:2px;font-family:ui-monospace,Menlo,Consolas,monospace}
.pv-longD{font-size:11.5px;color:var(--text2);line-height:1.6;margin-top:4px}
.pv-long .pv-tags{margin-top:6px}
.pv-ghost{position:relative;display:flex;align-items:center;gap:6px;padding:7px 12px;
  border:1px dashed #E1E5EC;border-radius:7px;background:#FAFBFD}
.pv-ghost b{font-size:11.5px;font-weight:400;color:var(--text4)}
.pv-ghost i{flex:1;height:6px;border-radius:3px;background:#EDF0F5;margin-left:6px}
.pv-longEnd{font-size:10.5px;color:var(--text4);text-align:center;padding-top:2px}

@media(max-width:900px){
  .adb{grid-template-columns:1fr}
  .adprev{position:static}
}

/* ==========================================================
   顶部用户菜单
   ========================================================== */
.who-wrap{position:relative}
.who{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);
  border:0;background:transparent;padding:4px 7px;border-radius:8px;cursor:pointer;font-family:inherit}
.who:hover{background:var(--bg2)}
.who .chev{color:var(--text4);transition:transform .16s;margin-left:1px;flex:none}
.who-wrap.open .who{background:var(--blue-l);color:var(--blue)}
.who-wrap.open .who .chev{transform:rotate(180deg);color:var(--blue)}
.who-menu{position:absolute;right:0;top:calc(100% + 8px);width:230px;background:#fff;
  border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(16,24,40,.15);
  padding:6px;z-index:70;display:none;text-align:left}
.who-wrap.open .who-menu{display:block;animation:wmIn .14s ease-out}
@keyframes wmIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.wm-h{display:flex;align-items:center;gap:9px;padding:8px 8px 11px;
  border-bottom:1px solid var(--line2);margin-bottom:5px}
.wm-id b{display:block;font-size:13px;font-weight:600;color:var(--text);line-height:1.4}
.wm-id em{display:block;font-style:normal;font-size:11px;color:var(--text4);margin-top:1px}
.who-menu a{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:7px;
  font-size:13px;color:var(--text2)}
.who-menu a:hover{background:var(--bg2);color:var(--text);text-decoration:none}
.who-menu a svg{color:var(--text4);flex:none}
.who-menu a:hover svg{color:var(--blue)}
.wm-sep{height:1px;background:var(--line2);margin:5px 0}
.who-menu a.wm-out:hover{background:#FDF3F2;color:#C0342B}
.who-menu a.wm-out:hover svg{color:#C0342B}

/* 用户信息 / 改密 */
.um-head{display:flex;align-items:center;gap:11px;padding-bottom:14px;
  border-bottom:1px solid var(--line2);margin-bottom:14px}
.avatar-lg{width:44px;height:44px;border-radius:12px;font-size:17px}
.um-id{flex:1;min-width:0}
.um-id b{display:block;font-size:14px;font-weight:600;color:var(--text)}
.um-id em{display:block;font-style:normal;font-size:11.5px;color:var(--text4);margin-top:1px}
.um-kv{display:grid;grid-template-columns:78px 1fr;gap:9px 12px;margin:0 0 14px;font-size:12.5px}
.um-kv dt{color:var(--text4)}
.um-kv dd{margin:0;color:var(--text);word-break:break-all;line-height:1.6}

/* 响应式 */
@media(max-width:1280px){
  .rwrap{gap:56px}
}
@media(max-width:1024px){
  .rwrap{gap:32px}
}
@media(max-width:1240px){
  .pdp .rwrap{flex-wrap:wrap;gap:18px}
  .pdp .filters{width:100%;order:-1;position:static;display:flex;flex-wrap:wrap;gap:12px 26px;padding:10px 0 0;
    align-items:flex-start}
  .pdp .fgroup{margin-bottom:0;min-width:170px;max-width:320px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 15px}
  .pdp .fgroup .fh{width:100%;margin-bottom:2px}
  .pdp .fgroup .fchips{grid-template-columns:1fr 1fr;width:100%}
  .pdp .fclear{align-self:center;white-space:nowrap}
  .pdp .rside{display:none}
}
@media(max-width:1080px){
  .rside{display:none}
  .rwrap{gap:0}
}
@media(max-width:820px){
  .login-l{display:none}
  .login-r{width:100%;padding:0 24px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .side{width:60px}
  .side-h .n,.side-nav a span,.side-f{display:none}
  .side-nav a{justify-content:center;padding:0}
  .brand-t{font-size:32px}
  .pinfo{grid-template-columns:1fr 1fr}
  .phead-skel{width:84px;height:84px}
  .phead h1{font-size:19px}
  .rel{grid-template-columns:1fr}
  .qsec-h .qsum{margin-left:0;text-align:left;width:100%}
  .qtbl th:nth-child(3),.qtbl td:nth-child(3){display:none}
}
