/* ===== 大气神秘 · 深空大数据主题 ===== */
:root{
  --bg:#05070f; --bg2:#0a0f24;
  --panel:rgba(18,26,54,.55); --panel2:rgba(26,38,80,.62);
  --line:rgba(96,134,224,.22);
  --cyan:#3df0ff; --blue:#4f8bff; --violet:#9b6bff; --green:#39ffb0;
  --red:#ff5d7a; --gold:#ffd166; --txt:#dbe7ff; --muted:#8295c4;
  --glass:rgba(14,22,48,.55);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--txt);
  font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;min-height:100vh;
  -webkit-font-smoothing:antialiased;line-height:1.6}
a{color:var(--cyan);text-decoration:none;transition:.2s}
a:hover{color:var(--violet)}
a.lnk{color:var(--muted);margin-left:6px}
a.lnk:hover{color:var(--cyan)}

/* 背景：深空星雾 + 缓慢旋转的星云 + 网格 */
.bg-fx{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;
  background:
   radial-gradient(900px 520px at 78% -8%, rgba(78,139,255,.20), transparent 60%),
   radial-gradient(800px 600px at 12% 110%, rgba(155,107,255,.18), transparent 60%),
   radial-gradient(600px 400px at 50% 50%, rgba(61,240,255,.06), transparent 70%),
   linear-gradient(180deg,var(--bg),var(--bg2));}
.bg-fx::before{content:"";position:absolute;inset:-30%;
  background-image:linear-gradient(rgba(96,134,224,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(96,134,224,.05) 1px,transparent 1px);
  background-size:46px 46px;mask:radial-gradient(circle at 50% 40%,#000 30%,transparent 78%);
  -webkit-mask:radial-gradient(circle at 50% 40%,#000 30%,transparent 78%);
  animation:drift 24s linear infinite}
.bg-fx::after{content:"";position:absolute;inset:-40%;opacity:.5;
  background:conic-gradient(from 0deg at 70% 20%,rgba(61,240,255,.10),rgba(155,107,255,.10),rgba(78,139,255,.10),rgba(61,240,255,.10));
  filter:blur(40px);animation:spin 60s linear infinite}
@keyframes drift{from{transform:translateY(0)}to{transform:translateY(46px)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* 站点头部：顶栏 + 顶部栏目导航 */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);
  background:linear-gradient(90deg,rgba(10,16,40,.94),rgba(14,26,68,.86));
  border-bottom:1px solid var(--line)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 26px}
.brand{font-weight:700;letter-spacing:.5px;color:#fff;font-size:15px;white-space:nowrap;text-decoration:none}
.brand:hover{color:var(--cyan)}
.logo{color:var(--cyan);text-shadow:0 0 12px var(--cyan)}
.userbar{font-size:13px;color:var(--muted);white-space:nowrap}
.userbar a{color:var(--cyan)}
.topnav{display:flex;flex-wrap:wrap;gap:4px 6px;padding:0 18px 10px}
.navitem{position:relative;color:var(--muted);font-size:14px;padding:7px 14px;border-radius:9px;
  text-decoration:none;white-space:nowrap;transition:.15s;border:1px solid transparent}
.navitem:hover{color:#fff;background:rgba(61,240,255,.10);border-color:rgba(61,240,255,.35)}
.navitem.active{color:#06121f;background:linear-gradient(90deg,var(--cyan),#5ef0ff);
  font-weight:700;box-shadow:0 0 16px rgba(61,240,255,.45);border-color:transparent}
.wrap{max-width:1320px;margin:0 auto;padding:26px 26px 60px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:26px;border-top:1px solid var(--line)}

/* 标题 */
h1.title{font-size:30px;margin:6px 0 6px;font-weight:800;
  background:linear-gradient(90deg,var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 30px rgba(61,240,255,.18)}
.subtitle{color:var(--muted);font-size:13px;margin-bottom:20px}

/* tabs */
.tabs{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.tab{padding:10px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);
  color:var(--muted);cursor:pointer;font-size:14px;backdrop-filter:blur(6px);transition:.2s}
.tab.active{color:#fff;border-color:var(--cyan);box-shadow:0 0 18px rgba(61,240,255,.3);background:var(--panel2)}
.tab:hover{color:var(--cyan)}
.panelbox{display:none}
.panelbox.active{display:block}

/* 卡片网格 */
.grid{display:grid;gap:16px}
.grid.kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);
  border-radius:16px;padding:18px;backdrop-filter:blur(10px);position:relative;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.02)}
.card::before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;
  background:linear-gradient(135deg,transparent 30%,rgba(61,240,255,.4),transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;pointer-events:none}
.kpi .num{font-size:32px;font-weight:800;color:#fff;text-shadow:0 0 18px rgba(61,240,255,.45)}
.kpi .lbl{color:var(--muted);font-size:13px;margin-top:4px}
.kpi .num.green{color:var(--green);text-shadow:0 0 18px rgba(57,255,176,.4)}
.kpi .num.gold{color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.4)}
.kpi .num.purple{color:var(--violet);text-shadow:0 0 18px rgba(155,107,255,.4)}
.kpi .num.cyan{color:var(--cyan);text-shadow:0 0 18px rgba(61,240,255,.4)}

.chart{width:100%;height:340px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.row2{grid-template-columns:1fr}}
.card h3{margin:0 0 10px;font-size:15px;color:#fff;font-weight:600}
.section-title{font-size:19px;color:#fff;margin:28px 0 12px;display:flex;align-items:center;gap:8px}
.section-title::before{content:"";width:4px;height:18px;background:linear-gradient(var(--cyan),var(--violet));border-radius:2px;box-shadow:0 0 12px var(--cyan)}

/* 表 */
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th,table.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
table.tbl th{color:var(--cyan);font-weight:600;background:rgba(61,240,255,.07)}
table.tbl tr:hover td{background:rgba(78,139,255,.07)}
.tag{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px}
.tag.hang{background:rgba(57,255,176,.14);color:var(--green)}
.tag.win{background:rgba(255,93,122,.14);color:var(--red)}
.tag.conf-high{background:rgba(57,255,176,.14);color:var(--green)}
.tag.conf-mid{background:rgba(255,209,102,.14);color:var(--gold)}
.tag.conf-low{background:rgba(255,93,122,.14);color:var(--red)}

.badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:11px;background:rgba(130,149,196,.2);color:var(--muted)}
.badge.vip{background:linear-gradient(90deg,var(--gold),#ff9f43);color:#1a1300;font-weight:700}
.mask{color:var(--red);font-size:12px;border:1px dashed var(--red);padding:1px 6px;border-radius:6px;cursor:help}
.demo-banner{background:rgba(255,209,102,.1);border:1px solid var(--gold);color:var(--gold);
  padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}
/* ===== 统一按钮系统（a / button / input 通用） ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 22px;border-radius:12px;font-family:inherit;font-size:14px;font-weight:700;line-height:1;
  border:1px solid transparent;cursor:pointer;text-decoration:none;color:#00121f;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  box-shadow:0 8px 22px rgba(61,240,255,.30);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, background .2s, border-color .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(61,240,255,.5);filter:brightness(1.06)}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(61,240,255,.35),0 12px 30px rgba(61,240,255,.5)}
/* 金色核心 CTA（搜索、主转化） */
.btn-gold{background:linear-gradient(90deg,var(--gold),#ff9f43);color:#1a1300;box-shadow:0 8px 22px rgba(255,209,102,.30)}
.btn-gold:hover{box-shadow:0 12px 30px rgba(255,209,102,.5);filter:brightness(1.05)}
/* 幽灵/次按钮：玻璃描边，与主题统一 */
.btn-ghost{background:rgba(61,240,255,.06);border-color:var(--line);color:var(--txt);backdrop-filter:blur(6px)}
.btn-ghost:hover{color:var(--cyan);border-color:var(--cyan);background:rgba(61,240,255,.12);box-shadow:0 0 18px rgba(61,240,255,.25)}
.btn-sm{padding:8px 16px;font-size:13px}
.btn[disabled],.btn:disabled{opacity:.5;pointer-events:none;transform:none}

/* 表单 */
.field{margin-bottom:14px}
label{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}
input,textarea,select{width:100%;padding:11px 13px;border-radius:11px;border:1px solid var(--line);
  background:rgba(8,14,34,.7);color:var(--txt);font-size:14px;outline:none;transition:.2s}
input:focus,textarea:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 14px rgba(61,240,255,.3)}
.dropzone{border:2px dashed var(--line);border-radius:14px;padding:34px;text-align:center;color:var(--muted);
  background:rgba(14,22,48,.5);transition:.2s;cursor:pointer}
.dropzone.hover{border-color:var(--cyan);color:var(--cyan);background:rgba(61,240,255,.07)}
.note{color:var(--muted);font-size:12px;margin-top:6px}
.match-rate{font-size:22px;font-weight:800;display:flex;flex-direction:column;align-items:flex-end;line-height:1.05}
.match-rate .mr-label{font-size:13px;font-weight:600;letter-spacing:2px;opacity:.85;margin-bottom:1px}
.match-rate .mr-num{font-size:30px;font-weight:900}
.match-rate .bar{height:8px;width:130px;border-radius:6px;background:rgba(8,14,34,.8);overflow:hidden;margin-top:6px}
.match-rate .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold),var(--green))}
.pill{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;margin:2px}
.pill.ok{background:rgba(57,255,176,.14);color:var(--green)}
.pill.no{background:rgba(255,93,122,.14);color:var(--red)}
.pill.diff{background:rgba(255,209,102,.14);color:var(--gold)}

/* ===== 后台外壳 ===== */
.admin-shell{display:flex;min-height:100vh}
.admin-side{width:240px;flex:none;display:flex;flex-direction:column;gap:6px;padding:22px 16px;
  background:linear-gradient(180deg,rgba(10,16,40,.96),rgba(12,20,46,.9));
  border-right:1px solid var(--line);position:sticky;top:0;height:100vh;backdrop-filter:blur(10px)}
.admin-logo{font-weight:800;color:#fff;font-size:15px;line-height:1.4}
.admin-side-tag{color:var(--cyan);font-size:12px;letter-spacing:2px;margin:2px 0 16px;text-transform:uppercase}
.admin-nav{display:flex;flex-direction:column;gap:6px}
.admin-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:11px;
  color:var(--muted);font-size:14px;border:1px solid transparent;transition:.2s}
.admin-nav-item .ic{width:18px;text-align:center;opacity:.8}
.admin-nav-item:hover{color:var(--cyan);background:rgba(61,240,255,.07)}
.admin-nav-item.active{color:#fff;background:linear-gradient(90deg,rgba(78,139,255,.25),rgba(61,240,255,.12));
  border-color:rgba(61,240,255,.4);box-shadow:0 0 16px rgba(61,240,255,.2)}
.admin-side-foot{margin-top:auto;color:var(--muted);font-size:11px;line-height:1.7;opacity:.7}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-top{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;
  border-bottom:1px solid var(--line);background:rgba(10,16,40,.6);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.admin-crumb{color:var(--muted);font-size:14px}
.admin-crumb .sep{margin:0 8px;color:var(--cyan)}
.admin-user{font-size:13px;color:var(--muted)}
.admin-user b{color:var(--cyan)}
.admin-wrap{max-width:1180px;width:100%;margin:0 auto;padding:26px}
@media(max-width:760px){.admin-side{width:64px}.admin-logo,.admin-side-tag,.admin-nav-item span:not(.ic),.admin-side-foot{display:none}.admin-nav-item{justify-content:center}}

/* 设置页 */
.setting-group{margin-bottom:18px}
.setting-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px 22px;margin-top:10px}
.setting-grid .field{margin-bottom:0}

/* ===== 学习拆解检验报告向导 ===== */
.stepper{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.step{padding:9px 16px;border-radius:11px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);font-size:13px;font-weight:600;backdrop-filter:blur(6px)}
.step.done{color:#fff;border-color:rgba(57,255,176,.5);box-shadow:0 0 14px rgba(57,255,176,.18)}
.step:not(.done){color:var(--cyan)}
.ocr-status{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.extext{max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;
  background:rgba(8,14,34,.7);border:1px solid var(--line);border-radius:12px;
  padding:14px;font-size:13px;line-height:1.7;color:var(--txt);margin:8px 0 0}
details>summary{user-select:none}

/* ===== 搜索首页（搜索引擎式） ===== */
.hero{position:relative;text-align:center;padding:48px 16px 10px;max-width:980px;margin:0 auto}
.hero-glow{position:absolute;inset:-40px 0 auto 0;height:300px;z-index:-1;
  background:radial-gradient(600px 220px at 50% 0,rgba(61,240,255,.18),transparent 70%);filter:blur(8px)}
.hero-title{font-size:40px;font-weight:900;margin:0 0 12px;line-height:1.2;
  background:linear-gradient(90deg,var(--cyan),var(--violet) 60%,var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(61,240,255,.2)}
.hero-sub{color:var(--muted);font-size:14px;margin:0 0 26px}
.hero-sub b{color:var(--cyan)}
.search-card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);
  border-radius:20px;padding:20px;backdrop-filter:blur(12px);box-shadow:0 18px 50px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.02);max-width:860px;margin:0 auto}
.seg{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:rgba(8,14,34,.7);border:1px solid var(--line);margin-bottom:16px}
.seg-btn{padding:9px 18px;border:none;background:transparent;color:var(--muted);font-size:14px;border-radius:9px;cursor:pointer;font-family:inherit;transition:.2s}
.seg-btn.active{background:linear-gradient(90deg,var(--blue),var(--cyan));color:#00121f;font-weight:700;box-shadow:0 0 16px rgba(61,240,255,.35)}
.search-row{margin-bottom:14px}
.big-input{width:100%;min-height:92px;max-height:460px;overflow-y:auto;resize:none;box-sizing:border-box;font-size:15px;line-height:1.6;
  background:rgba(8,14,34,.7);border:1px solid var(--line);border-radius:14px;color:var(--txt);padding:14px 16px;outline:none;transition:.2s}
.big-input:focus{border-color:var(--cyan);box-shadow:0 0 18px rgba(61,240,255,.3)}
.search-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.search-btn{font-size:16px;padding:13px 38px}
.hero-links{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:26px 0 14px}
.hero-links a{display:inline-flex;align-items:center;padding:11px 20px;border-radius:12px;
  border:1px solid var(--line);background:rgba(61,240,255,.06);color:var(--txt);font-size:14px;font-weight:600;
  backdrop-filter:blur(6px);transition:.2s}
.hero-links a:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(61,240,255,.12);box-shadow:0 0 18px rgba(61,240,255,.25);transform:translateY(-1px)}
.hero-login{color:var(--muted);font-size:13px}
.hero-login a{color:var(--cyan)}
.result-card{max-width:980px;margin:14px auto}
.result-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.result-head h3{margin:0;font-size:18px;color:#fff}
@media(max-width:640px){.hero-title{font-size:30px}.row2{grid-template-columns:1fr}}

/* ===== 单查询：悬浮加载动画 ===== */
.float-loader{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:22px;background:rgba(5,7,15,.6);backdrop-filter:blur(7px)}
.float-loader[hidden]{display:none}
.float-core{position:relative;width:140px;height:140px;animation:floatBob 2.6s ease-in-out infinite}
.float-mag{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:46px;
  filter:drop-shadow(0 0 16px rgba(61,240,255,.75));animation:floatBob 2.6s ease-in-out infinite}
.float-ring{position:absolute;inset:6px;border-radius:50%;border:2px solid rgba(61,240,255,.3);
  border-top-color:var(--cyan);animation:spin 1.3s linear infinite}
.radar{position:absolute;inset:0}
.radar span{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 14px var(--cyan);transform:translate(-50%,-50%);animation:radarFly 1.8s linear infinite}
.radar span:nth-child(2){animation-delay:.6s;background:var(--violet);box-shadow:0 0 14px var(--violet)}
.radar span:nth-child(3){animation-delay:1.2s;background:var(--gold);box-shadow:0 0 14px var(--gold)}
.float-text{color:var(--txt);font-size:15px;letter-spacing:1px}
.float-text .dots i{animation:dotBlink 1.4s infinite;font-style:normal}
.float-text .dots i:nth-child(2){animation-delay:.2s}
.float-text .dots i:nth-child(3){animation-delay:.4s}

/* 搜索卡片查询中轻微浮动 */
.search-card.is-searching{animation:cardFloat 2.6s ease-in-out infinite}

@keyframes floatBob{0%,100%{transform:translateY(-11px)}50%{transform:translateY(11px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes radarFly{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}20%{opacity:1}
  100%{transform:translate(-50%,-50%) translate(0,-48px) scale(1);opacity:0}}
@keyframes dotBlink{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes cardFloat{0%,100%{transform:translateY(-4px)}50%{transform:translateY(4px)}}

/* ===== 单查询结果：左右两列 + 高亮不一致 + 缺失 ===== */
.results-wrap{max-width:980px;margin:0 auto}
.single-foot{display:flex;justify-content:center;margin:18px auto 30px}
.single-foot[hidden]{display:none}
.result-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}
.rcol{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(8,14,34,.42)}
.rcol-title{font-size:13px;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:6px}
.rcol-title.ok{color:var(--green)}
.rcol-title.diff{color:var(--gold)}
.rcol-title.no{color:var(--red)}
.pill-row{display:flex;flex-wrap:wrap;gap:5px}
.result-foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}

/* 不一致：高亮脉冲 */
.pill.diff.hl{animation:diffPulse 1.5s ease-in-out infinite;font-weight:700;
  border:1px solid var(--gold)}
@keyframes diffPulse{0%,100%{box-shadow:0 0 0 rgba(255,209,102,0);border-color:rgba(255,209,102,.4)}
  50%{box-shadow:0 0 16px rgba(255,209,102,.6);border-color:var(--gold)}}

/* 缺失：红标强调 */
.pill.no{font-weight:600}

/* 结果卡片浮入 */
.r-anim{animation:rFloatIn .5s ease both}
@keyframes rFloatIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:640px){.result-cols{grid-template-columns:1fr}}

/* ===== 单查询结果：逐行对比表格（查询要求 | 报告实测参数 | 匹配状态） ===== */
.cmp-small{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;table-layout:fixed}
.cmp-small th,.cmp-small td{border:1px solid var(--line);padding:9px 11px;vertical-align:top;text-align:left;word-break:break-word}
.cmp-small th{background:rgba(26,38,80,.78);color:#fff;font-weight:600;white-space:nowrap}
.cmp-small td.rv{color:var(--cyan);white-space:pre-line;line-height:1.7}
.cmp-small tbody tr.st-ok  td{background:rgba(57,255,176,.07)}
.cmp-small tbody tr.st-diff td{background:rgba(255,209,102,.09)}
.cmp-small tbody tr.st-no  td{background:rgba(255,93,122,.09)}
.cmp-small tbody tr.st-near td{background:rgba(120,170,255,.1)}
.cmp-small .muted{color:var(--muted)}
.cmp-small .badge{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:700;white-space:nowrap}
.cmp-small .badge.ok  {background:rgba(57,255,176,.18);color:var(--green)}
.cmp-small .badge.diff{background:rgba(255,209,102,.2);color:var(--gold)}
.cmp-small .badge.near{background:rgba(120,170,255,.22);color:var(--blue,#4a90e2)}
.cmp-small .badge.no  {background:rgba(255,93,122,.2);color:var(--red)}
@media(max-width:640px){.cmp-small{font-size:12px}.cmp-small th,.cmp-small td{padding:7px 8px}}

/* ===== 上传处理进度条（异步分段处理用） ===== */
.pbar-wrap{margin:14px 0 6px}
.pbar{height:14px;border-radius:999px;background:rgba(96,134,224,.14);
  border:1px solid var(--line);overflow:hidden;position:relative}
.pbar-inner{height:100%;width:0%;border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--violet));
  box-shadow:0 0 16px rgba(61,240,255,.45);
  transition:width .45s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}
.pbar-inner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  animation:pbarSheen 1.4s linear infinite}
@keyframes pbarSheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.pbar-txt{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px}
.pbar-pct{color:var(--cyan);font-weight:700}
.stagelist{list-style:none;margin:14px 0 0;padding:0;font-size:13px}
.stagelist li{display:flex;align-items:center;gap:9px;padding:6px 0;color:var(--muted)}
.stagelist li .dot{width:16px;height:16px;border-radius:50%;flex:0 0 16px;
  border:1px solid var(--line);background:rgba(96,134,224,.10);position:relative}
.stagelist li.act{color:var(--txt)}
.stagelist li.act .dot{border-color:var(--cyan);box-shadow:0 0 10px rgba(61,240,255,.5)}
.stagelist li.ok{color:var(--green)}
.stagelist li.ok .dot{background:var(--green);border-color:var(--green)}
.stagelist li.ok .dot::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;
  border:solid #04231a;border-width:0 2px 2px 0;transform:rotate(42deg)}
.stagelist li.err{color:var(--red)}
.stagelist li.err .dot{background:var(--red);border-color:var(--red)}

/* ===== 顶栏：去掉中间导航后，品牌在左、用户在右 ===== */
.topbar{justify-content:space-between}

/* ===== 供应商入口：左表单 / 右拆解过程，一屏显示 ===== */
.su-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:18px;align-items:start}
@media(max-width:920px){.su-grid{grid-template-columns:1fr}}
.su-right{position:sticky;top:78px}
.su-compact .card{padding:14px 16px}
.su-compact h3{margin:0 0 10px;font-size:15px}
.su-compact .field{margin-bottom:10px}
.param-scroll{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.param-scroll .tbl{margin:0}

/* ============ 招采入口 ============ */
.nat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:10px}
.nat-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
  background:rgba(20,32,72,.5);text-decoration:none;color:var(--txt);transition:.15s}
.nat-card:hover{border-color:var(--cyan);box-shadow:0 0 16px rgba(61,240,255,.25);transform:translateY(-2px)}
.nat-logo{width:34px;height:34px;flex:0 0 34px;border-radius:8px;background:rgba(61,240,255,.12);
  display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden}
.nat-logo img{width:100%;height:100%;object-fit:cover}
.nat-name{font-weight:600;font-size:14px}
.prov-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:760px){.prov-cols{grid-template-columns:1fr}}
.prov-h{font-size:15px;color:var(--cyan);margin:6px 0 8px}
.prov-list{list-style:none;padding:0;margin:0}
.prov-list li{padding:8px 0;border-bottom:1px dashed var(--line);line-height:1.6}
.prov-list li a{color:var(--txt);font-weight:600;text-decoration:none}
.prov-list li a:hover{color:var(--cyan)}
.notice-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}
.notice-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;
  text-decoration:none;color:var(--txt);transition:.15s}
.notice-item:hover{border-color:var(--cyan);background:rgba(61,240,255,.06)}
.notice-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notice-meta{color:var(--muted);font-size:12px;flex:0 0 auto}

/* ============ 产品百科 ============ */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:10px 0 22px}
.prod-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  text-decoration:none;color:var(--txt);background:rgba(20,32,72,.5);transition:.15s}
.prod-card:hover{border-color:var(--cyan);box-shadow:0 0 18px rgba(61,240,255,.25);transform:translateY(-3px)}
.prod-img{height:120px;background:rgba(10,18,44,.6);display:flex;align-items:center;justify-content:center;overflow:hidden}
.prod-img img{width:100%;height:100%;object-fit:cover}
.prod-emoji{font-size:46px}
.prod-name{padding:10px 12px 2px;font-weight:700;font-size:15px}
.prod-sum{padding:0 12px 10px;color:var(--muted);font-size:12px;line-height:1.5}
.prod-cat{color:var(--cyan)}
.crumb{color:var(--muted);font-size:13px;margin:4px 0 10px}
.crumb a{color:var(--cyan);text-decoration:none}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
@media(max-width:860px){.detail-grid{grid-template-columns:1fr}}
.detail-side .card{margin-bottom:14px}
.rel-list{list-style:none;padding:0;margin:0}
.rel-list li{padding:6px 0;border-bottom:1px dashed var(--line)}
.rel-list li a{color:var(--cyan);text-decoration:none}
.svc-card{display:flex;flex-direction:column}
.svc-ico{font-size:34px;margin-bottom:6px}
.svc-card p{flex:1}

/* ============================================================
   视觉升级：新增栏目（招采入口 / 产品百科 / 大数据 / 人工服务 / 智能写参数）
   在「深空神秘」主题下补充更精致的卡片、列表、图标与动效
   ============================================================ */

/* —— 页面头部（图标 + 标题 + 副标题 一体） —— */
.page-head{display:flex;align-items:center;gap:16px;margin:4px 0 20px}
.page-head .ph-ico{width:56px;height:56px;flex:0 0 56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:30px;
  background:linear-gradient(135deg,rgba(61,240,255,.22),rgba(155,107,255,.22));
  border:1px solid rgba(61,240,255,.35);box-shadow:0 0 26px rgba(61,240,255,.25);position:relative}
.page-head h1{margin:0;font-size:29px;font-weight:800;line-height:1.15;
  background:linear-gradient(90deg,var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.page-head .subtitle{margin:3px 0 0;font-size:13px;line-height:1.55}
@media(max-width:560px){.page-head{gap:12px}.page-head .ph-ico{width:46px;height:46px;font-size:24px}.page-head h1{font-size:22px}}

/* —— 区块小标题（带图标芯片） —— */
.mini-title{display:flex;align-items:center;gap:9px;font-size:16px;color:#fff;font-weight:700;margin:0 0 12px}
.mini-title .mt-ico{width:30px;height:30px;flex:0 0 30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;
  background:rgba(61,240,255,.14);border:1px solid rgba(61,240,255,.3)}
.mini-title .mt-sub{font-weight:400;color:var(--muted);font-size:12px;margin-left:auto}

/* —— 招采入口：全国平台卡片 —— */
.nat-grid{grid-template-columns:repeat(auto-fill,minmax(212px,1fr))}
.nat-card{position:relative;overflow:hidden;border-radius:14px;padding:16px;background:linear-gradient(150deg,rgba(22,34,74,.7),rgba(16,26,58,.55));border:1px solid var(--line)}
.nat-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--cyan),var(--violet));opacity:.75}
.nat-card:hover{transform:translateY(-3px);border-color:rgba(61,240,255,.5);box-shadow:0 14px 34px rgba(0,0,0,.45),0 0 22px rgba(61,240,255,.18)}
.nat-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,rgba(61,240,255,.25),rgba(155,107,255,.25));
  border:1px solid rgba(61,240,255,.3);font-size:21px}
.nat-name{font-size:15px;line-height:1.35}

/* —— 招采入口：地图提示与容器 —— */
.map-hint{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 12px}
.map-hint .chip{font-size:12px;color:var(--muted);background:rgba(61,240,255,.08);border:1px solid var(--line);border-radius:999px;padding:4px 12px}
.map-hint .chip b{color:var(--cyan)}
.map-block #chinamap{border-radius:14px;background:radial-gradient(900px 480px at 50% 0,rgba(61,240,255,.06),transparent 70%);
  border:1px solid rgba(61,240,255,.12);padding:6px}
.map-tip{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}

/* —— 招采入口：省份详情站点列表 —— */
.prov-cols{gap:26px}
.site-item{display:flex;align-items:center;gap:11px;padding:11px 13px;margin-bottom:9px;border-radius:12px;
  background:rgba(14,22,48,.5);border:1px solid var(--line);transition:.15s}
.site-item:hover{border-color:rgba(61,240,255,.5);background:rgba(61,240,255,.06);transform:translateX(3px)}
.site-item .si-ico{width:34px;height:34px;flex:0 0 34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;
  background:rgba(61,240,255,.12);border:1px solid rgba(61,240,255,.25)}
.site-item .si-main{flex:1;min-width:0}
.site-item .si-name{font-weight:600;color:var(--txt);text-decoration:none;font-size:14px}
.site-item .si-name:hover{color:var(--cyan)}
.site-item .si-note{color:var(--muted);font-size:12px;margin-top:2px}
.site-item .si-go{color:var(--cyan);font-size:12px;white-space:nowrap}
.prov-empty{padding:16px 4px;color:var(--muted);font-size:13px}

/* —— 招采入口：公告信息流 —— */
.notice-item{border-radius:12px;padding:11px 14px;align-items:flex-start}
.notice-item .tag{margin-right:9px;flex:0 0 auto;margin-top:1px}
.notice-item .notice-title{font-size:14px;line-height:1.5}
.notice-empty{padding:18px;text-align:center;color:var(--muted)}

/* —— 产品百科：分类与产品卡 —— */
.cat-head{display:flex;align-items:center;gap:12px;margin:30px 0 14px}
.cat-head .ch-ico{width:46px;height:46px;flex:0 0 46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:24px;
  background:linear-gradient(135deg,rgba(61,240,255,.2),rgba(155,107,255,.2));border:1px solid rgba(61,240,255,.3);box-shadow:0 0 20px rgba(61,240,255,.18)}
.cat-head .ch-name{font-size:20px;font-weight:800;color:#fff}
.cat-head .ch-count{margin-left:auto;color:var(--muted);font-size:13px;background:rgba(130,149,196,.14);border:1px solid var(--line);border-radius:999px;padding:4px 13px}

.prod-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.prod-card{position:relative;overflow:hidden}
.prod-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--violet));opacity:.85}
.prod-card:hover{transform:translateY(-4px);border-color:rgba(61,240,255,.55);box-shadow:0 16px 40px rgba(0,0,0,.5),0 0 26px rgba(61,240,255,.22)}
.prod-img{height:130px;background:linear-gradient(135deg,rgba(20,34,72,.7),rgba(12,20,46,.6));position:relative}
.prod-img::after{content:"";position:absolute;inset:0;background:radial-gradient(130px 80px at 50% 120%,rgba(61,240,255,.18),transparent 70%)}
.prod-emoji{filter:drop-shadow(0 4px 12px rgba(61,240,255,.4))}
.prod-name{font-size:15px;line-height:1.4}
.prod-sum{color:var(--muted);font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prod-cat{font-size:12px}
.prod-search-empty{padding:30px;text-align:center;color:var(--muted)}

/* —— 产品详情页 —— */
.pd-hero{display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:16px;margin-bottom:18px;
  background:linear-gradient(135deg,rgba(22,34,74,.7),rgba(14,22,48,.5));border:1px solid var(--line);position:relative;overflow:hidden}
.pd-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(61,240,255,.18),transparent 70%);pointer-events:none}
.pd-hero .pd-emoji{font-size:56px;filter:drop-shadow(0 6px 16px rgba(61,240,255,.4));position:relative}
.pd-hero h1{margin:0;font-size:26px;position:relative}
.pd-hero .pd-cat{color:var(--cyan);font-size:13px;margin-top:5px;position:relative}
.pd-content{font-size:14px;line-height:1.95;color:var(--txt)}
.pd-content h2,.pd-content h3{color:#fff;margin:18px 0 8px}
.pd-content ul{padding-left:20px;line-height:2}
.pd-content table.tbl{margin:12px 0}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.chip-info{font-size:12px;color:var(--muted);background:rgba(61,240,255,.08);border:1px solid var(--line);border-radius:999px;padding:5px 13px}

/* —— 人工服务：服务卡头部渐变 —— */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.svc-card{position:relative;overflow:hidden;padding:0}
.svc-card .svc-top{padding:18px 18px 0}
.svc-card .svc-ico{width:54px;height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:28px;
  background:linear-gradient(135deg,rgba(61,240,255,.25),rgba(155,107,255,.25));border:1px solid rgba(61,240,255,.3);box-shadow:0 0 22px rgba(61,240,255,.2)}
.svc-card h3{margin:14px 0 6px;font-size:17px}
.svc-card .svc-body{padding:0 18px 18px;display:flex;flex-direction:column;flex:1}
.svc-card .btn{margin-top:auto}
.svc-card .svc-num{position:absolute;right:14px;top:8px;font-size:42px;font-weight:900;color:rgba(61,240,255,.10);line-height:1}

/* —— 智能写参数：表格内输入框 —— */
.param-scroll .tbl input{background:rgba(8,14,34,.5);padding:8px 10px;font-size:13px}
.param-scroll .tbl td{padding:4px}
.bi,.bs,.br{width:100%}
#outText{font-family:"SF Mono",Consolas,Menlo,monospace;font-size:13px;line-height:1.7;background:rgba(8,14,34,.6)}

/* —— 大数据看板增强 —— */
.kpi .card{position:relative;overflow:hidden}
.kpi .card::after{content:"";position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(61,240,255,.12),transparent 70%)}
.unit{font-size:14px;color:var(--muted);margin-left:4px;font-weight:600}

/* —— 收藏夹：跨页面复用的输入框/按钮 —— */
.inp,select.inp{background:rgba(0,0,0,.28);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:7px 10px;font-size:13px;font-family:inherit;outline:none}
.inp:focus,select.inp:focus{border-color:var(--cyan)}
.btn{cursor:pointer}

/* —— 会员体系（2026-09-07）：积分芯片 / 会员类型徽标 / 报告解锁门禁 —— */
.cr-chip{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;color:var(--gold);
  border:1px solid rgba(255,209,102,.35);background:rgba(255,209,102,.08);white-space:nowrap;line-height:1.7}
.userbar .cr-chip{margin-left:2px}
.badge.vip{background:linear-gradient(90deg,var(--gold),#ff9f43);color:#06121f;border:0}
.search-tip{font-size:13px}
.search-tip .lnk{font-size:13px}
.gate .btn{min-width:150px}
