.flag{display:inline-flex;align-items:center;vertical-align:middle;margin-right:5px}
.flag img{border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12);display:block}
.imgf{display:flex;gap:8px;align-items:center}.imgf input{flex:1}.imgf .btn{white-space:nowrap;margin:0}
.thumb{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.thumb[hidden]{display:none}
.meter{position:relative;height:16px;min-width:70px;background:#eef0f4;border-radius:99px;overflow:hidden}
.meter i{position:absolute;inset:0 auto 0 0;background:#34d399;border-radius:99px}
.meter i.warn{background:#fbbf24}.meter i.bad{background:#f87171}
.meter span{position:relative;display:block;text-align:center;font-size:11px;line-height:16px;color:#111827}
.chart{width:100%;height:auto;display:block}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-top:2px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 16px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}
.tabs a.on{color:var(--pri);border-color:var(--pri);font-weight:600}
.stat.good b{color:var(--ok)}.stat.badv b{color:var(--bad)}.stat.pri b{color:var(--pri)}
.stat small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.prod{position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}
.prod:hover{box-shadow:0 6px 18px rgba(79,70,229,.15);transform:translateY(-2px)}
.prod .cover{margin:-10px -12px 4px;height:52px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);display:flex;align-items:center;justify-content:center;overflow:hidden}
.prod .cover img{width:100%;height:100%;object-fit:cover}
.prod .cover .big{font-size:28px}
.prod h4{margin:0;font-size:13px;display:flex;align-items:center}
.prod .ribbon{position:absolute;top:10px;right:-30px;background:var(--warn);color:#fff;font-size:11px;padding:2px 34px;transform:rotate(35deg)}
.prod ul{margin:2px 0;padding-left:16px;color:var(--muted);font-size:11px}
.plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.plan{background:#fff;border-radius:12px;padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.08);border:2px solid transparent;display:flex;flex-direction:column;gap:8px}
.plan.hot{border-color:var(--pri)}
.plan .tiers{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tier{border:1px solid var(--line);border-radius:9px;padding:8px 10px;cursor:pointer;text-align:center;background:#fff;font:inherit}
.tier:hover{border-color:var(--pri)}.tier b{display:block;font-size:17px;color:var(--pri)}.tier small{color:var(--muted)}
.tier.best{border-color:var(--ok);background:#f0fdf4}
.rgs{display:flex;flex-wrap:wrap;gap:6px}.rgs span{background:#f3f4f6;border-radius:99px;padding:2px 10px 2px 6px;font-size:12px;display:inline-flex;align-items:center}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.pcard{background:#fff;border-radius:var(--r);padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.06);cursor:default}
.pcard .row{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;margin:4px 0;font-size:12px}
.pcard .row>span:first-child{color:var(--muted)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;margin-right:6px}
.dot.ok{background:#22c55e}.dot.bad{background:#ef4444}.dot.warn{background:#f59e0b}
.sub-big{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;font-size:13px}.kv>span:nth-child(odd){color:var(--muted)}
.sec{margin:20px 0 6px;padding-bottom:6px;border-bottom:1px solid var(--line);font-weight:600}
.empty{padding:36px;text-align:center;color:var(--muted)}
.steps{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.steps div{flex:1;min-width:160px;background:#fff;border-radius:var(--r);padding:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:13px}
.steps b{display:block;color:var(--pri);margin-bottom:2px}
code{background:#f3f4f6;padding:1px 5px;border-radius:4px;font-size:12px}
.table-sm td,.table-sm th{padding:6px 10px}
.kind{font-size:11px}
@media(max-width:800px){.pgrid,.plans{grid-template-columns:1fr}.kv{grid-template-columns:90px 1fr}}

/* 表格: 默认不换行 (窄屏横向滚动), 长文本列加 class=w */
.tw td,.tw th{white-space:nowrap}.tw td.w{white-space:normal;min-width:200px;max-width:340px}
.gm{display:inline-block;margin:2px 10px 2px 0;padding:4px 8px;background:#f8fafc;border-radius:6px;font-size:12px}
.probe-card{padding:0;overflow:hidden;margin-bottom:10px}
.probe-card .phd{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(90deg,#eef2ff,#f5f3ff);flex-wrap:wrap;border-bottom:1px solid var(--line)}
.probe-card .phd .up,.probe-card .phd .dn{font-weight:600;color:#6d28d9;font-size:13px}
.probe-card table,.probe-card .tw{box-shadow:none;margin:0;border-radius:0}
.flag img{object-fit:cover;background:#f3f4f6}
