:root{
  --tb:#5AC2D8;            /* 品牌标准青（取自 VI 封面 #59C2D8 / logo #5AC2D8） */
  --tb-2:#43AFC7;
  --deep:#08414C;          /* 深墨青：正文与按钮，压在品牌青上对比 5.42:1 */
  --pale:#EDF8FA;
  --paper:#F6FAFB;
  --line:#C9E4EB;
  --hair:#E4EFF1;
  --ink:#0F2529;
  --ink-2:#557075;
  --ink-3:#8DA6AB;
  --warn:#8E6216;
  --warn-bg:#FAF2E1;
  --serif:Georgia,"Times New Roman","Songti SC",STSong,serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.65}
.wrap{max-width:500px;margin:0 auto;min-height:100vh;background:#fff;box-shadow:0 0 0 1px var(--hair)}

/* ============ 报头 ============ */
.mast{position:relative;background:var(--tb);color:var(--deep);padding:16px 20px 60px;overflow:hidden}
.mast::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.10) 0 1px,transparent 1px 7px),
             repeating-linear-gradient(-45deg,rgba(255,255,255,.07) 0 1px,transparent 1px 11px)}
.mast > *{position:relative}
.brand{display:flex;align-items:center;gap:11px}
.brand img.mark{width:38px;height:38px;flex:0 0 38px;display:block}
.brand .cn{font-size:17.5px;font-weight:700;letter-spacing:1.6px;line-height:1.15}
.brand .en{font-family:var(--serif);font-size:11px;letter-spacing:3px;opacity:.85}
.mast .doc{margin:30px 0 0;font-family:var(--serif);font-size:10.5px;letter-spacing:3.6px;
  text-transform:uppercase;opacity:.72}
.mast h1{margin:7px 0 0;font-size:29px;font-weight:700;letter-spacing:1.5px;line-height:1.28}
.mast .rule{width:44px;height:2px;background:var(--deep);margin:16px 0 11px;opacity:.55}
.mast .sub{margin:0;font-size:13px;letter-spacing:.6px;opacity:.85}

/* ============ 查询卡（压在报头上） ============ */
.search{position:relative;z-index:5;margin:-42px 18px 0;background:#fff;border:1px solid var(--line);
  border-radius:3px;padding:18px 16px 16px;box-shadow:0 6px 22px -14px rgba(12,92,109,.32)}
.search .lab{font-family:var(--serif);font-size:10px;letter-spacing:2.6px;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 10px}
.field{display:flex;gap:10px}
.field input{flex:1;min-width:0;height:54px;border:1px solid var(--tb);border-radius:2px;background:#fff;
  padding:0 15px;font-family:var(--serif);font-size:21px;letter-spacing:2.6px;color:var(--ink);outline:none}
.field input::-webkit-input-placeholder{font-family:-apple-system,"PingFang SC",sans-serif;
  font-size:14.5px;letter-spacing:.4px;color:var(--ink-3)}
.field input:focus{border-color:var(--deep);box-shadow:0 0 0 3px rgba(79,185,205,.16)}
.go{height:54px;padding:0 24px;border:0;background:var(--deep);color:#fff;border-radius:2px;
  font-size:15.5px;letter-spacing:3px;cursor:pointer}
.go:active{background:#094854}
.hint{margin:12px 0 0;font-size:12.5px;color:var(--ink-2);letter-spacing:.2px}
.hint b{font-family:var(--serif);color:var(--deep);letter-spacing:1px;font-weight:700}
.err{color:#B03A2E;font-size:13px;margin:10px 0 0;display:none}
.samples{margin-top:15px;padding-top:13px;border-top:1px dashed var(--line)}
.samples .sl{font-family:var(--serif);font-size:9.5px;letter-spacing:2.2px;color:var(--ink-3);margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--serif);font-size:13px;letter-spacing:1px;color:var(--deep);
  background:var(--pale);border:1px solid var(--line);border-radius:2px;padding:6px 11px;cursor:pointer}
.chip:active{background:#DCEFF3}

/* ============ 正文 ============ */
main{padding:24px 18px 8px}
.blk{margin-bottom:26px}
.blk-hd{display:flex;align-items:baseline;gap:10px;padding-bottom:9px;margin-bottom:0;
  border-bottom:2px solid var(--deep)}
.blk-hd .no{font-family:var(--serif);font-size:11px;letter-spacing:1.6px;color:var(--tb);font-weight:700}
.blk-hd h2{margin:0;font-size:16px;font-weight:700;letter-spacing:2.4px;flex:1}
.blk-hd .en{font-family:var(--serif);font-size:9.5px;letter-spacing:1.8px;color:var(--ink-3);text-transform:uppercase}

/* 商品 */
.goods{display:flex;gap:15px;padding:16px 0}
.goods img.thumb{width:104px;height:104px;object-fit:cover;background:var(--pale);
  border:1px solid var(--hair);flex:0 0 104px}
.goods .info{flex:1;min-width:0;display:flex;flex-direction:column}
.goods .name{margin:0 0 3px;font-size:17px;font-weight:700;line-height:1.4;letter-spacing:.3px}
.goods .cat{margin:0 0 auto;font-size:12.5px;color:var(--ink-2);letter-spacing:.2px}
.kv-no{margin-top:11px;padding-top:10px;border-top:1px solid var(--hair)}
.kv-no i{font-style:normal;display:block;font-size:10px;letter-spacing:2px;color:var(--ink-3);margin-bottom:2px}
.kv-no b{font-family:var(--serif);font-size:25px;font-weight:700;letter-spacing:1.8px;color:var(--deep);
  display:block;line-height:1.2}
.specs{border-top:1px solid var(--hair)}
.spec{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 1px;
  border-bottom:1px solid var(--hair);font-size:14px}
.spec dt{color:var(--ink-2);margin:0;flex:0 0 auto;letter-spacing:.4px}
.spec dd{margin:0;font-weight:600;text-align:right;word-break:break-all;letter-spacing:.2px}
.spec dd.miss{color:var(--warn);background:var(--warn-bg);font-weight:500;font-size:11.5px;
  padding:2px 8px;border-radius:2px;letter-spacing:.5px}

/* 报告 */
.rep-wrap{padding:16px 0}
.org{display:flex;align-items:flex-start;gap:11px;margin-bottom:15px}
.seal{flex:0 0 38px;width:38px;height:38px;border:1.4px solid var(--tb);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;
  color:var(--deep);letter-spacing:.5px;line-height:1.1;text-align:center}
.org .ot{flex:1;min-width:0}
.org .on{margin:0;font-size:15.5px;font-weight:700;line-height:1.45;letter-spacing:.2px}
.org .om{margin:2px 0 0;font-size:11.5px;letter-spacing:1.4px;color:var(--ink-3)}
.no-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  background:var(--pale);border-left:3px solid var(--tb);padding:11px 13px;margin-bottom:14px}
.no-line .k{font-size:11.5px;letter-spacing:1.6px;color:var(--ink-2)}
.no-line .v{font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:1.4px;color:var(--deep)}
.meta{border-top:1px solid var(--hair)}
.meta .row{display:flex;gap:14px;padding:9px 1px;font-size:13.5px;border-bottom:1px solid var(--hair)}
.meta .k{color:var(--ink-2);flex:0 0 66px;letter-spacing:.6px}
.meta .v{flex:1;font-weight:600;text-align:right;word-break:break-all;letter-spacing:.2px}
.pages-tip{font-family:var(--serif);font-size:10.5px;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--ink-3);text-align:center;margin:16px 0 12px}
.pcap{font-family:var(--serif);font-size:10px;letter-spacing:2px;color:var(--ink-3);
  text-align:center;margin:9px 0 6px}
.pg{display:block;width:100%;border:1px solid var(--hair);background:#fff;border-radius:2px;cursor:zoom-in}
.ro{display:flex;align-items:center;gap:9px;margin:15px 0 0;padding:11px 13px;
  background:var(--deep);color:#fff;border-radius:2px;font-size:12.5px;letter-spacing:.6px}
.ro .lk{flex:0 0 auto;width:14px;height:14px;border:1.6px solid #fff;border-radius:2px;
  position:relative;margin-top:-4px}
.ro .lk::after{content:"";position:absolute;left:3.4px;top:-5px;width:5.2px;height:6px;
  border:1.6px solid #fff;border-bottom:0;border-radius:3px 3px 0 0}
.legal{margin:11px 1px 0;font-size:11.5px;color:var(--ink-3);line-height:1.75;letter-spacing:.2px}

/* ============ 官方渠道 ============ */
.official{background:var(--pale);border-top:1px solid var(--line);padding:24px 18px 20px;margin-top:6px}
.official .oh{display:flex;align-items:baseline;gap:9px;margin-bottom:17px}
.official .oh h3{margin:0;font-size:14.5px;font-weight:700;letter-spacing:2px;color:var(--deep)}
.official .oh span{font-family:var(--serif);font-size:9.5px;letter-spacing:1.8px;color:var(--ink-3);text-transform:uppercase}
.qrs{display:flex;gap:12px}
.qr{flex:1;min-width:0;text-align:center}
.qr .box{aspect-ratio:1/1;border:1px solid var(--line);background:#fff;border-radius:2px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.qr .box img{width:100%;height:100%;object-fit:contain;display:block}
.qr .lb{margin-top:8px;font-size:12px;color:var(--ink-2);letter-spacing:.6px}
.qr .id{margin-top:1px;font-family:var(--serif);font-size:10px;letter-spacing:.4px;color:var(--ink-3)}
.sign{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);text-align:center}
.sign img{width:44px;height:44px;display:block;margin:0 auto 8px}
.sign .sl{margin:0;font-size:14px;font-weight:600;letter-spacing:3.2px;color:var(--deep)}
.sign p{margin:5px 0 0;font-size:10.5px;letter-spacing:1.6px;color:var(--ink-3)}

/* 空状态 */
.empty{text-align:center;padding:46px 24px}
.empty .ic{width:56px;height:56px;margin:0 auto 16px;border:1.5px solid var(--warn);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;color:var(--warn)}
.empty h3{margin:0 0 8px;font-size:17px;letter-spacing:1.2px}
.empty p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.85}
#result{display:none}

/* 全屏查看（canvas，长按不弹保存） */
#viewer{display:none;position:fixed;inset:0;z-index:99;background:rgba(8,26,30,.96);
  overflow:auto;-webkit-overflow-scrolling:touch;padding:10px 6px 26px}
#viewer canvas{width:100%;max-width:780px;display:block;margin:0 auto 9px;background:#fff;border-radius:2px}
#viewer .vt{text-align:center;color:#9FBCC1;font-family:var(--serif);font-size:11px;
  letter-spacing:2px;padding:4px 0 13px}
