:root{
  --container:1600px; --gutter:clamp(20px,2.2vw,40px); --rail:216px;
  --bg:#f4f6fb; --surface:#fff; --ink:#0b1526; --muted:#5b6b80; --faint:#8a98aa;
  --line:#dce4ef; --line-strong:#c7d3e4; --blue:#1d4ed8; --blue-2:#3b82f6;
  --soft:#e9efff; --soft-2:#f4f7ff; --good:#0f9f6e; --warn:#b45309;
  --font:"IBM Plex Sans","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;
  --r:14px; --shadow:0 16px 40px rgba(11,21,38,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.wrap{width:min(var(--container),calc(100% - 2*var(--gutter)));margin:0 auto}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* top */
.top{position:sticky;top:0;z-index:40;background:rgba(244,246,251,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(199,211,228,.7)}
.nav{height:70px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.035em;font-size:20px;flex:0 0 auto}
.brand-mark{width:29px;height:29px;border-radius:9px;background:var(--blue);position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.brand-mark::before,.brand-mark::after{content:"";position:absolute;background:#fff;border-radius:2px}
.brand-mark::before{width:13px;height:2px;left:8px;top:13px}
.brand-mark::after{width:2px;height:13px;left:13px;top:8px}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{padding:8px 11px;border-radius:8px;color:var(--muted);font-size:13px;font-weight:600;transition:.16s}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink);background:var(--soft)}
.nav-spacer{flex:1}
.nav-actions{display:flex;align-items:center;gap:9px}
.nav-login{font-size:13px;color:var(--muted);font-weight:600;padding:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:12px 18px;font-weight:700;font-size:13px;transition:transform .15s,background .15s,box-shadow .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(29,78,216,.18)}
.btn-primary:hover{background:#173ea8}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line-strong)}
.btn-ghost:hover{background:var(--soft-2)}
.btn-sm{padding:8px 12px;font-size:12px;border-radius:8px}
.text-link{font-size:13px;font-weight:700;color:var(--blue);border-bottom:1px solid rgba(29,78,216,.3);padding-bottom:2px}

/* status band */
.status{border-bottom:1px solid var(--line);background:#fff}
.status-in{min-height:38px;display:flex;align-items:center;gap:22px;font-size:11px;color:var(--muted);overflow:auto;white-space:nowrap}
.api{display:inline-flex;align-items:center;gap:6px;border-right:1px solid var(--line);padding-right:18px}
.api:last-of-type{border:0}
.api i{width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px rgba(15,159,110,.12)}
.status .note{color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.status .time{margin-left:auto;color:var(--faint)}

/* shell */
.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:clamp(22px,2.4vw,36px);padding:22px 0 60px;align-items:start}
.rail{position:sticky;top:96px;border-right:1px solid var(--line);padding-right:18px}
.rail-title{font-size:10px;font-weight:800;color:var(--faint);letter-spacing:.06em;margin:2px 0 8px}
.rail a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:8px;font-size:13px;color:var(--muted);font-weight:600;transition:.15s}
.rail a:hover,.rail a[aria-current]{background:var(--soft);color:var(--blue)}
.rail a span{font-family:var(--mono);font-size:10px;color:var(--faint);font-weight:500}
.rail-card{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}
.rail-card b{display:block;font-size:12px;margin-bottom:7px}
.rail-card p{margin:0;font-size:11px;line-height:1.7;color:var(--muted)}
.rail-card .btn{width:100%;margin-top:10px}
.rail-meta{margin-top:16px;font-size:10px;line-height:1.8;color:var(--faint)}

/* hero */
.main{min-width:0}
.hero{padding:18px 0 22px;border-bottom:1px solid var(--line)}
.hero-top{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:end}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--blue);background:var(--soft);padding:6px 9px;border-radius:6px}
.kicker i{width:5px;height:5px;border-radius:50%;background:var(--good)}
h1{font-size:clamp(50px,5.7vw,82px);line-height:.94;letter-spacing:-.065em;margin:16px 0 0;font-weight:800}
h1 em{font-style:normal;color:var(--blue)}
.lead{font-size:15px;line-height:1.85;color:var(--muted);max-width:44em;margin:14px 0 0}
.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding-bottom:4px}
.metric{border-top:1px solid var(--line-strong);padding-top:9px}
.metric b{display:block;font-family:var(--mono);font-size:20px;letter-spacing:-.03em;font-weight:500}
.metric span{font-size:10px;color:var(--faint)}
.hero-note{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:12px}
.hero-note span{display:inline-flex;gap:6px;align-items:center}
.tick{width:13px;height:13px;border-radius:50%;background:var(--soft);color:var(--blue);display:inline-grid;place-items:center;font-size:9px;font-weight:800}

/* command */
.command{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.cmd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfcff);font-size:11px}
.cmd-head b{font-size:12px;display:flex;align-items:center;gap:7px}
.live{color:var(--good);display:flex;align-items:center;gap:6px;font-size:10px}
.live i{width:5px;height:5px;border-radius:50%;background:var(--good);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(15,159,110,.35)}50%{box-shadow:0 0 0 5px rgba(15,159,110,0)}}
.cmd-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.1fr) auto;gap:9px;padding:13px 15px 8px}
.field{min-width:0}
.field label{display:block;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:5px}
.input{width:100%;height:40px;border:1px solid var(--line-strong);border-radius:8px;background:#fbfcff;padding:0 11px;color:var(--ink);outline:none;font-size:12px;transition:.15s}
.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.1)}
.cmd-grid .btn{height:40px;align-self:end;padding:0 18px}
.cmd-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 15px 12px;font-size:10px;color:var(--faint)}
.chip{border:1px solid var(--line);background:#fff;color:var(--muted);padding:5px 8px;border-radius:6px;font-size:10px;font-weight:600}
.chip.on{border-color:rgba(29,78,216,.35);background:var(--soft);color:var(--blue)}
.cmd-foot .right{margin-left:auto;display:flex;gap:12px;align-items:center}
.cmd-foot .right b{color:var(--ink);font-family:var(--mono);font-weight:500}
.evidence-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#fbfcff}
.ev{padding:10px 15px;border-right:1px solid var(--line);font-size:10px;color:var(--muted)}
.ev:last-child{border:0}
.ev b{display:block;color:var(--ink);font-size:12px;margin-bottom:3px}
.ev .ok{color:var(--good);font-weight:700}

/* sections */
.section{padding:34px 0 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}
.section-head h2{font-size:24px;letter-spacing:-.04em;margin:0;font-weight:800}
.section-head p{margin:5px 0 0;font-size:12px;color:var(--muted)}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;border-bottom:1px solid var(--line)}
.panel-head h3{margin:0;font-size:13px}
.panel-head span{font-size:11px;color:var(--faint)}
.tabs{display:flex;gap:5px}
.tab{padding:6px 11px;border:1px solid var(--line);border-radius:6px;font-size:11px;font-weight:700;background:#fff;color:var(--muted)}
.tab.on{background:var(--ink);border-color:var(--ink);color:#fff}
.filterline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 15px;border-bottom:1px solid var(--line);font-size:10px;color:var(--faint)}
.filterline b{color:var(--ink);margin-right:3px}
.f{border:1px solid var(--line);border-radius:5px;padding:4px 7px;background:#fff;color:var(--muted);font-size:10px}
.f.on{background:var(--soft);border-color:rgba(29,78,216,.3);color:var(--blue)}
.table{width:100%;border-collapse:collapse;font-size:12px}
.table th{text-align:left;font-size:10px;color:var(--faint);font-weight:700;padding:9px 15px;border-bottom:1px solid var(--line);background:#fbfcff;white-space:nowrap}
.table td{padding:11px 15px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border:0}
.table tbody tr:hover{background:#fbfcff}
.site{display:flex;align-items:center;gap:9px;font-weight:700}
.avatar{width:26px;height:26px;border-radius:7px;background:var(--soft);display:grid;place-items:center;color:var(--blue);font-size:10px;font-weight:800;flex:0 0 auto}
.site small{display:block;color:var(--faint);font-size:10px;font-weight:400;margin-top:1px}
.grade{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:6px;font-size:10px;font-weight:800}
.grade.a{background:#e7f7ef;color:#087f5b}.grade.b{background:#fff7e6;color:#9a5b00}
.verdict{font-size:11px;color:var(--muted)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--good);font-weight:700}.down{color:#b42318;font-weight:700}

/* report cards */
.reports{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.report{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;min-height:200px;transition:.16s}
.report:hover{transform:translateY(-2px);border-color:var(--line-strong)}
.report-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.report-site{font-size:19px;font-weight:800;letter-spacing:-.03em}
.report-domain{font-size:10px;color:var(--faint);margin-top:3px}
.report-grade{width:40px;height:40px;border-radius:10px;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:19px}
.report h3{font-size:14px;line-height:1.55;margin:14px 0 7px}
.report p{font-size:11px;line-height:1.7;color:var(--muted);margin:0}
.report-foot{margin-top:auto;padding-top:11px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:var(--faint)}
.report-foot b{font-family:var(--mono);font-weight:500;color:var(--ink)}

/* two col */
.two{display:grid;grid-template-columns:1.25fr .75fr;gap:12px}
.news-list{list-style:none;margin:0;padding:0}
.news-list li{padding:12px 15px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.65}
.news-list li:last-child{border:0}
.news-list time{display:block;font-size:10px;color:var(--faint);margin-bottom:3px}
.news-list a:hover{color:var(--blue)}
.risk-list{list-style:none;margin:0;padding:0}
.risk-list li{padding:12px 15px;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7;color:var(--muted)}
.risk-list li:last-child{border:0}
.risk-list b{color:var(--ink)}

/* tools/articles */
.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tool{display:flex;gap:11px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:11px;transition:.15s}
.tool:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.tool .ico{width:31px;height:31px;border-radius:8px;background:var(--soft);color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:12px;flex:0 0 auto}
.tool b{display:block;font-size:12px;margin-bottom:3px}
.tool span{font-size:10px;color:var(--muted)}
.articles{border-top:1px solid var(--line)}
.article{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center}
.article h3{font-size:14px;margin:0 0 3px;letter-spacing:-.01em}
.article p{margin:0;font-size:10px;color:var(--muted)}
.article time{font-size:10px;color:var(--faint)}
.article:hover h3{color:var(--blue)}

/* merchant */
.merchant{margin-top:30px;background:linear-gradient(135deg,#102a66,#1d4ed8 65%,#2f66ee);border-radius:var(--r);padding:24px 28px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.merchant::after{content:"";position:absolute;right:-80px;top:-100px;width:360px;height:360px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.04),0 0 0 80px rgba(255,255,255,.03)}
.merchant h3{font-size:21px;letter-spacing:-.03em;margin:0 0 5px}
.merchant p{margin:0;font-size:11px;line-height:1.7;color:#c7d6ff;max-width:760px}
.merchant .btn{background:#fff;color:var(--blue);position:relative;z-index:1;flex:0 0 auto}

/* footer */
.foot{margin-top:40px;border-top:1px solid var(--line);padding:22px 0 38px;font-size:10px;color:var(--faint)}
.foot-in{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.foot b{color:var(--ink);font-size:11px}
.foot-links{display:flex;gap:14px;flex-wrap:wrap}

/* report page */
.report-wrap{width:min(var(--container),calc(100% - 2*var(--gutter)));margin:0 auto;padding:26px 0 56px}
.crumb{font-size:11px;color:var(--faint);display:flex;gap:7px;align-items:center;margin-bottom:18px}
.crumb a{color:var(--blue);font-weight:600}
.report-head{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:30px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:22px}
.report-head h1{font-size:clamp(38px,4.4vw,58px);line-height:1.05;margin:0}
.report-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:var(--muted)}
.report-meta span{border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:#fff}
.grade-box{background:var(--blue);color:#fff;border-radius:18px;padding:18px;text-align:center;box-shadow:0 16px 36px rgba(29,78,216,.2)}
.grade-box b{display:block;font-family:var(--mono);font-size:54px;line-height:1}
.grade-box span{display:block;font-size:10px;opacity:.8;margin-top:4px}
.report-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding-top:20px}
.report-main{min-width:0}
.verdict{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.verdict h2{margin:0 0 8px;font-size:22px;letter-spacing:-.035em}
.verdict p{margin:0;font-size:12px;line-height:1.8;color:var(--muted)}
.decision{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.decision div{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fbfcff}
.decision b{display:block;font-size:10px;color:var(--faint);margin-bottom:4px}
.decision span{font-size:11px;line-height:1.6;color:var(--ink)}
.dims{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:18px}
.dim label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:5px}
.dim label b{font-family:var(--mono);color:var(--ink);font-weight:500}
.track{height:6px;background:#edf1f7;border-radius:99px;overflow:hidden}
.track i{display:block;height:100%;background:linear-gradient(90deg,#1d4ed8,#5b8cff);border-radius:99px}
.evidence{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.evidence .panel-head{padding:11px 15px}
.evidence table{width:100%;border-collapse:collapse;font-size:11px}
.evidence th{text-align:left;font-size:9px;color:var(--faint);padding:8px 15px;border-bottom:1px solid var(--line);background:#fbfcff}
.evidence td{padding:10px 15px;border-bottom:1px solid var(--line);vertical-align:top}
.evidence tr:last-child td{border:0}
.evidence .ok{color:var(--good);font-weight:700}.evidence .warn{color:var(--warn);font-weight:700}
.chart{display:flex;align-items:end;gap:4px;height:70px;padding:14px 15px 0}
.chart i{flex:1;background:var(--soft);border-radius:3px 3px 0 0;min-height:5px}
.chart i.hot{background:var(--blue)}
.chart-note{display:flex;justify-content:space-between;padding:4px 15px 12px;font-size:9px;color:var(--faint)}
.side{min-width:0}
.side .panel{padding:17px}
.side .panel + .panel{margin-top:12px}
.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px}
.kv:last-child{border:0}
.kv span{color:var(--faint)}.kv b{font-family:var(--mono);font-weight:500}
.side .btn{width:100%;margin-top:12px}
.method{font-size:10px;line-height:1.8;color:var(--faint);margin-top:12px}

@media (max-width:1280px){:root{--rail:190px}.hero-top{grid-template-columns:minmax(0,1fr) 290px}.reports{grid-template-columns:1fr 1fr}.tools{grid-template-columns:1fr 1fr}}
@media (max-width:1040px){
  .shell{grid-template-columns:1fr}.rail{display:none}
  .report-body{grid-template-columns:1fr}.report-head{grid-template-columns:1fr 130px}
  .report-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}.side .panel + .panel{margin-top:0}
}
@media (max-width:760px){
  .wrap,.report-wrap{width:calc(100% - 28px)}
  .nav{height:60px;gap:10px}.nav-links{display:none}.nav-login{display:none}
  .status-in{gap:12px;font-size:10px}.status .time{display:none}.status .note{max-width:190px}
  .hero{padding-top:12px}.hero-top{grid-template-columns:1fr;gap:16px}
  h1{font-size:clamp(42px,11vw,60px)}
  .lead{font-size:13px}
  .hero-side{grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}
  .metric b{font-size:16px}.metric span{font-size:9px}
  .cmd-grid{grid-template-columns:1fr;padding-bottom:8px}.cmd-grid .btn{width:100%;margin-top:2px}
  .cmd-foot .right{margin-left:0;width:100%;justify-content:space-between}
  .evidence-strip{grid-template-columns:1fr 1fr}.ev:nth-child(2){border-right:0}.ev:nth-child(1),.ev:nth-child(2){border-bottom:1px solid var(--line)}
  .reports{grid-template-columns:1fr}.tools{grid-template-columns:1fr}.two{grid-template-columns:1fr}
  .table th:nth-child(5),.table td:nth-child(5),.table th:nth-child(6),.table td:nth-child(6){display:none}
  .table th,.table td{padding:9px 10px}
  .merchant{display:block;padding:20px}.merchant .btn{width:100%;margin-top:14px}
  .report-head{grid-template-columns:1fr}.grade-box{width:84px;padding:10px}.grade-box b{font-size:36px}
  .decision{grid-template-columns:1fr}.dims{grid-template-columns:1fr}
  .report-side{grid-template-columns:1fr}
  .article{grid-template-columns:1fr}.article time{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* live A+ additions */
.cmd-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.step-box{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fbfcff;padding:0 12px;height:40px;font-size:11px;color:var(--muted);border-radius:8px}
.step-box b{color:var(--ink);font-size:11px;white-space:nowrap}
.step-box span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-note{font-size:10px;color:var(--faint);padding:7px 15px 0}
.status .level{padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:9px;margin-left:4px}
.status .level.ok{background:#e7f7ef;color:#087f5b}.status .level.warn{background:#fff7e6;color:#9a5b00}
.loading{color:var(--faint);font-size:11px;padding:14px 15px}
.empty{color:var(--faint);font-size:11px;padding:14px 15px}
.news-list .src{color:var(--blue);font-size:10px;margin-left:5px}
@media(max-width:760px){.cmd-grid{grid-template-columns:1fr}.step-box{height:auto;padding:9px 11px}.hero-side{grid-template-columns:1fr 1fr}}
