.tmp-serve-css.css 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. .registry-head{
  2. position:relative;overflow:hidden;
  3. display:flex;align-items:center;
  4. padding:82px 0 90px;
  5. background:
  6. radial-gradient(720px 400px at 84% -18%,rgba(22,120,255,.16),transparent 62%),
  7. radial-gradient(560px 380px at -6% 116%,rgba(77,154,255,.13),transparent 60%),
  8. linear-gradient(118deg,#EDF5FF 0%,#F8FBFF 46%,#E9F2FF 100%);
  9. border-bottom:1px solid var(--line);
  10. }
  11. /* 光纹网格(淡出到内容区边缘) */
  12. .registry-head::before{
  13. content:"";position:absolute;inset:0;pointer-events:none;
  14. background-image:
  15. linear-gradient(rgba(22,120,255,.05) 1px,transparent 1px),
  16. linear-gradient(90deg,rgba(22,120,255,.05) 1px,transparent 1px);
  17. background-size:44px 44px;
  18. -webkit-mask-image:radial-gradient(900px 480px at 66% 42%,#000 0%,transparent 78%);
  19. mask-image:radial-gradient(900px 480px at 66% 42%,#000 0%,transparent 78%);
  20. }
  21. /* 右上角装饰圆环 */
  22. .registry-head::after{
  23. content:"";position:absolute;right:-200px;top:-230px;width:580px;height:580px;
  24. border-radius:50%;pointer-events:none;
  25. border:1px dashed rgba(22,120,255,.20);
  26. box-shadow:0 0 0 44px rgba(22,120,255,.035),0 0 0 106px rgba(22,120,255,.02);
  27. }
  28. .registry-head .wrap{position:relative;z-index:1;width:100%;}
  29. .registry-inner{display:flex;align-items:center;gap:56px;}
  30. .registry-text{flex:1;min-width:0;max-width:656px;}
  31. .hero-badge{
  32. display:inline-flex;align-items:center;gap:9px;
  33. padding:7px 16px 7px 12px;border-radius:999px;
  34. background:rgba(255,255,255,.86);
  35. border:1px solid rgba(22,120,255,.25);
  36. color:#1678FF;font-size:12.5px;font-weight:600;
  37. font-family:"PingFang SC","PingFangSC-Semibold","Helvetica Neue",sans-serif;
  38. letter-spacing:.4px;
  39. box-shadow:0 10px 26px -14px rgba(22,120,255,.5);
  40. margin-bottom:28px;
  41. backdrop-filter:blur(6px);
  42. }
  43. .hero-badge .hero-badge-dot{
  44. width:7px;height:7px;border-radius:50%;
  45. background:linear-gradient(135deg,#5FA8FF,#1678FF);
  46. box-shadow:0 0 0 3.5px rgba(22,120,255,.15);
  47. }
  48. .registry-head h1{
  49. font-family:"PingFang SC","PingFangSC-Semibold","Helvetica Neue",sans-serif;font-weight:800;
  50. font-size:clamp(40px,5.2vw,58px);line-height:1.12;letter-spacing:-1.5px;
  51. color:#0B1F3F;
  52. }
  53. .registry-head h1 .brand-blue{
  54. background:linear-gradient(100deg,#3B96FF,#1678FF 55%,#0A5FE0);
  55. -webkit-background-clip:text;background-clip:text;color:transparent;
  56. }
  57. .registry-head .sub-title{
  58. margin-top:16px;font-family:"PingFang SC","PingFangSC-Semibold","Helvetica Neue",sans-serif;font-weight:600;
  59. font-size:clamp(16px,1.9vw,19px);color:#2E4A6B;letter-spacing:.3px;
  60. }
  61. .registry-head .lead{
  62. margin-top:22px;max-width:600px;color:#5F7490;font-size:14.5px;line-height:2.0;letter-spacing:.2px;
  63. font-family:"PingFang SC","PingFangSC-Regular","Helvetica Neue",sans-serif;font-weight:400;
  64. }
  65. .cta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:38px;}
  66. .btn-cta{
  67. display:inline-flex;align-items:center;gap:8px;
  68. padding:13px 28px;border-radius:999px;font-size:14.5px;font-weight:700;
  69. background:linear-gradient(135deg,#2E8CFF,#1678FF 60%,#0B63E0);
  70. color:#fff;border:none;cursor:pointer;
  71. font-family:"PingFang SC","PingFangSC-Semibold","Helvetica Neue",sans-serif;
  72. box-shadow:0 12px 26px -10px rgba(22,120,255,.65);
  73. transition:transform .18s,box-shadow .18s,filter .18s;
  74. }
  75. .btn-cta:hover{
  76. transform:translateY(-2px);filter:brightness(1.07);
  77. box-shadow:0 16px 34px -12px rgba(22,120,255,.78);
  78. }
  79. .btn-ghost{
  80. display:inline-flex;align-items:center;gap:8px;
  81. padding:13px 26px;border-radius:999px;font-size:14px;font-weight:600;
  82. background:rgba(255,255,255,.8);color:#33506F;
  83. border:1px solid rgba(154,182,214,.9);cursor:pointer;
  84. font-family:"PingFang SC","PingFangSC-Semibold","Helvetica Neue",sans-serif;
  85. transition:.18s;
  86. }
  87. .btn-ghost:hover{border-color:#1678FF;color:#1678FF;background:#fff;transform:translateY(-1px);}
  88. .hero-meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:26px;}
  89. .hm-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#57708C;font-weight:500;}
  90. .hm-item svg{flex:none;}
  91. .hm-item b{color:#1678FF;font-weight:700;}
  92. /* ===== 右侧接入拓扑卡(横幅内装饰,随横幅一起改) ===== */
  93. .hero-visual{
  94. flex:none;width:420px;position:relative;
  95. font-family:"PingFang SC","PingFangSC-Regular","Helvetica Neue",sans-serif;
  96. }
  97. .hv-card{
  98. position:relative;background:rgba(255,255,255,.82);
  99. border:1px solid rgba(22,120,255,.16);
  100. border-radius:22px;padding:18px;
  101. box-shadow:0 30px 64px -26px rgba(22,80,160,.38);
  102. backdrop-filter:blur(10px);
  103. animation:hvFloat 7s ease-in-out infinite;
  104. }
  105. @keyframes hvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
  106. .hv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 13px;border-bottom:1px dashed rgba(22,120,255,.2);}
  107. .hv-title{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#22395C;letter-spacing:.05em;}
  108. .hv-sm{width:22px;height:22px;flex:none;border-radius:7px;background:linear-gradient(135deg,#EAF2FF,#DCE9FF);display:inline-flex;align-items:center;justify-content:center;color:#1678FF;}
  109. .hv-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#17a14b;}
  110. .hv-ping{width:6px;height:6px;border-radius:50%;background:#17a14b;animation:hvPing 2s ease-out infinite;}
  111. @keyframes hvPing{0%{box-shadow:0 0 0 0 rgba(23,161,75,.4)}70%{box-shadow:0 0 0 8px rgba(23,161,75,0)}100%{box-shadow:0 0 0 0 rgba(23,161,75,0)}}
  112. .hv-flow{display:flex;align-items:center;gap:8px;padding:16px 2px 14px;}
  113. .hv-node{
  114. flex:1;min-width:0;display:flex;align-items:center;gap:9px;
  115. padding:10px 11px;border-radius:14px;background:#fff;
  116. border:1px solid #E3ECF7;box-shadow:0 10px 20px -16px rgba(22,51,84,.4);
  117. }
  118. .hv-ico{width:32px;height:32px;flex:none;border-radius:9px;display:flex;align-items:center;justify-content:center;}
  119. .hv-ico.app{background:linear-gradient(135deg,#EDF4FF,#DCE9FF);color:#1678FF;}
  120. .hv-ico.hub{background:linear-gradient(135deg,#1678FF,#0A5FE0);color:#fff;box-shadow:0 8px 14px -6px rgba(22,120,255,.55);}
  121. .hv-nt{min-width:0;}
  122. .hv-n1{display:block;font-size:12px;font-weight:700;color:#22354F;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  123. .hv-n2{display:block;font-size:10.5px;color:#8CA0B8;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  124. .hv-line{
  125. flex:none;width:36px;height:2px;border-radius:2px;
  126. background:repeating-linear-gradient(90deg,rgba(22,120,255,.8) 0 5px,transparent 5px 10px);
  127. animation:hvDash 1.1s linear infinite;
  128. }
  129. @keyframes hvDash{to{background-position:10px 0}}
  130. .hv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  131. .hv-tile{
  132. display:flex;align-items:center;gap:7px;min-width:0;
  133. padding:10px 11px;border-radius:12px;background:#fff;
  134. border:1px solid #E6EEF8;box-shadow:0 6px 14px -12px rgba(22,51,84,.3);
  135. transition:transform .16s,border-color .16s;
  136. }
  137. .hv-tile:hover{transform:translateY(-1px);border-color:rgba(22,120,255,.35);}
  138. .hv-tile svg{flex:none;width:18px;height:18px;}
  139. .hv-tile .tx{font-size:11px;font-weight:600;color:#3A5575;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  140. .hv-chip{
  141. position:absolute;right:-10px;bottom:-13px;display:inline-flex;align-items:center;gap:6px;
  142. padding:7px 12px;border-radius:10px;
  143. background:linear-gradient(135deg,#0B63E0,#1678FF);color:#fff;
  144. font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;
  145. box-shadow:0 12px 24px -10px rgba(22,120,255,.6);
  146. }
  147. @media (max-width:1160px){
  148. .registry-head{padding:68px 0 78px;}
  149. .hero-visual{display:none;}
  150. .registry-text{max-width:none;}
  151. }
  152. @media (prefers-reduced-motion:reduce){
  153. .hv-card,.hv-ping,.hv-line{animation:none;}
  154. }
  155. /* ===== 区块通用 ===== */
  156. .section{padding:72px 0;}
  157. .section-head{max-width:720px;margin-bottom:38px;}
  158. .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  159. .section-head .eyebrow{margin-bottom:14px;}
  160. .section-head h2{
  161. font-family:var(--font-serif);font-weight:900;font-size:clamp(24px,3vw,32px);line-height:1.2;
  162. }
  163. .section-head p{margin-top:12px;color:var(--ink-2);font-size:15px;line-height:1.7;}
  164. /* ===== 服务矩阵(注册中心卡片) ===== */
  165. .matrix-toolbar{
  166. display:flex;align-items:center;justify-content:space-between;
  167. gap:16px;flex-wrap:wrap;margin-bottom:26px;
  168. }
  169. .toolbar-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  170. .cap-select{
  171. appearance:none;-webkit-appearance:none;
  172. padding:9px 36px 9px 16px;border-radius:999px;border:1px solid var(--line-strong);
  173. background:var(--surface) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231678ff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
  174. font-size:13.5px;color:var(--ink);font-family:var(--font-sans);font-weight:500;cursor:pointer;
  175. }
  176. .cap-select:focus{outline:none;border-color:var(--brand);}
  177. .matrix-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;}
  178. .service-grid{
  179. display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  180. gap:18px;
  181. }
  182. .svc-card{
  183. position:relative;display:flex;flex-direction:column;
  184. background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  185. padding:22px;box-shadow:var(--shadow-card);
  186. transition:transform .22s,box-shadow .22s,border-color .22s;
  187. overflow:hidden;
  188. }
  189. .svc-card::before{
  190. content:"";position:absolute;top:0;left:0;right:0;height:3px;
  191. background:var(--brand);opacity:.9;
  192. }
  193. .svc-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--line-strong);}
  194. .svc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
  195. .svc-icon{
  196. width:46px;height:46px;border-radius:13px;flex:none;
  197. background:var(--brand);color:#fff;
  198. display:flex;align-items:center;justify-content:center;
  199. }
  200. .svc-badges{display:flex;flex-direction:row;align-items:center;gap:6px;flex-wrap:nowrap;}
  201. .price-tag{
  202. display:inline-flex;align-items:center;gap:6px;
  203. font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;
  204. }
  205. .price-tag.token{color:var(--brand-ink);background:var(--brand-soft);}
  206. .price-tag.free{color:#A05A00;background:#FFF4E3;}
  207. .limit-free-tag{
  208. display:inline-flex;align-items:center;gap:6px;
  209. font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;
  210. color:#C62828;background:#FFEBEC;
  211. }
  212. .svc-card h3{margin-top:18px;font-family:"PingFang SC","PingFangSC-Regular","Helvetica Neue",sans-serif;font-weight:700;font-size:19px;letter-spacing:.01em;}
  213. .tool-name-box{
  214. display:inline-block;margin-top:10px;font-family:var(--font-mono);font-size:12px;
  215. color:var(--brand-ink);background:var(--brand-soft-2);border:1px dashed var(--line-strong);
  216. padding:4px 12px;border-radius:6px;letter-spacing:.01em;
  217. }
  218. .tool-name-box::before{content:"工具名称";font-family:var(--font-sans);font-size:11px;color:var(--muted);font-weight:600;margin-right:8px;}
  219. .svc-url-row{display:flex;align-items:center;gap:8px;margin-top:8px;}
  220. .svc-url-input{
  221. flex:1;min-width:0;font-family:var(--font-mono);font-size:11px;
  222. color:var(--brand-ink);background:var(--surface-2);border:1px solid var(--line-strong);
  223. padding:5px 10px;border-radius:6px;outline:none;
  224. }
  225. .svc-url-input:focus{border-color:var(--brand);}
  226. .btn-copy{
  227. flex:none;display:inline-flex;align-items:center;gap:5px;
  228. padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;
  229. background:var(--brand-soft);color:var(--brand-ink);border:1px solid transparent;
  230. cursor:pointer;font-family:var(--font-sans);transition:.16s;
  231. }
  232. .btn-copy:hover{border-color:var(--brand);}
  233. .btn-copy.copied{background:var(--ok-soft);color:var(--ok);}
  234. .svc-tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;}
  235. .tag{
  236. font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;
  237. border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);
  238. }
  239. .tag.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.01em;background:var(--surface-2);}
  240. .svc-desc{margin-top:12px;font-size:13.5px;color:var(--ink-2);line-height:1.7;flex:1;font-family:"PingFang SC","PingFangSC-Regular","Helvetica Neue",sans-serif;font-weight:400;}
  241. .svc-tools{
  242. margin-top:12px;display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;
  243. padding-top:12px;border-top:1px dashed var(--line);
  244. }
  245. .svc-tools b{font-size:12.5px;color:var(--ink-2);font-weight:600;padding-top:2px;flex:none;}
  246. .tool-tag{
  247. font-size:11.5px;font-weight:600;padding:2px 10px;border-radius:999px;
  248. background:var(--brand-soft);color:var(--brand-ink);cursor:pointer;
  249. transition:.16s;border:1px solid transparent;user-select:none;
  250. }
  251. .tool-tag:hover{border-color:var(--brand);}
  252. .tool-tag.active{background:var(--brand);color:#fff;box-shadow:0 6px 12px -6px rgba(22,120,255,.5);}
  253. .svc-actions{
  254. margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;
  255. padding-top:13px;border-top:1px dashed var(--line);
  256. }
  257. .btn-sm{
  258. display:inline-flex;align-items:center;gap:7px;
  259. padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;
  260. cursor:pointer;font-family:var(--font-sans);transition:.18s;border:1px solid transparent;
  261. }
  262. .btn-sm.primary{background:var(--brand);color:#fff;box-shadow:0 8px 16px -8px rgba(22,120,255,.6);}
  263. .btn-sm.primary:hover{filter:brightness(1.06);}
  264. .btn-sm.ghost{background:var(--surface);color:var(--brand-ink);border-color:var(--line-strong);}
  265. .btn-sm.ghost:hover{border-color:var(--brand);}
  266. .toast{
  267. position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(16px);
  268. background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;
  269. font-size:13.5px;font-weight:500;box-shadow:0 12px 30px -10px rgba(22,33,46,.5);
  270. opacity:0;pointer-events:none;transition:.28s;z-index:200;max-width:82vw;line-height:1.5;
  271. }
  272. .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  273. .matrix-empty{
  274. display:none;text-align:center;padding:60px 20px;color:var(--muted);
  275. background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);
  276. }
  277. /* ===== 能力覆盖速览(矩阵表) ===== */
  278. .cap-bg{background:linear-gradient(180deg,#F0F7FF 0%,#F6F9FD 100%);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  279. .matrix-table-wrap{
  280. background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  281. box-shadow:var(--shadow-card);overflow:hidden;overflow-x:auto;
  282. }
  283. table.matrix{width:100%;border-collapse:collapse;min-width:760px;font-size:14px;}
  284. .matrix caption{
  285. text-align:left;padding:18px 22px;font-weight:700;color:var(--ink);
  286. background:var(--surface-2);border-bottom:1px solid var(--line);font-size:14.5px;
  287. }
  288. .matrix th,.matrix td{padding:15px 20px;text-align:left;vertical-align:top;}
  289. .matrix thead th{
  290. font-size:13px;letter-spacing:.03em;color:var(--ink-2);
  291. background:var(--surface);border-bottom:1px solid var(--line);
  292. }
  293. .matrix thead th.pl{color:var(--brand-ink);}
  294. .matrix tbody tr{border-bottom:1px solid var(--line);}
  295. .matrix tbody tr:last-child{border-bottom:none;}
  296. .matrix tbody tr:hover{background:var(--surface-2);}
  297. .matrix td.cap{font-weight:600;color:var(--ink);white-space:nowrap;}
  298. .matrix td .srv{font-family:var(--font-mono);font-size:12px;color:var(--brand-ink);}
  299. .matrix td.cell-note{color:var(--ink-2);}
  300. .matrix tfoot td{
  301. font-size:12.5px;color:var(--muted);background:var(--surface-2);
  302. border-top:1px solid var(--line);padding:12px 20px;
  303. }
  304. /* ===== 接入方式 ===== */
  305. .guide-bg{background:var(--surface);}
  306. .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:34px;}
  307. .step{
  308. background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  309. padding:24px;box-shadow:var(--shadow-card);
  310. }
  311. .step-no{
  312. width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;
  313. display:flex;align-items:center;justify-content:center;
  314. font-family:var(--font-mono);font-weight:600;font-size:15px;margin-bottom:16px;
  315. }
  316. .step h4{font-family:var(--font-serif);font-weight:700;font-size:17px;margin-bottom:8px;}
  317. .step p{font-size:13.5px;color:var(--ink-2);line-height:1.7;}
  318. .config-panel{
  319. background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  320. overflow:hidden;box-shadow:var(--shadow-card);
  321. }
  322. .config-head{
  323. padding:16px 20px;border-bottom:1px solid var(--line);
  324. display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  325. }
  326. .config-head h4{font-size:15px;font-weight:700;}
  327. .config-head .plat{
  328. font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:6px;
  329. background:var(--brand-soft);color:var(--brand-ink);
  330. }
  331. .config-head .meta{font-size:11.5px;color:var(--muted);width:100%;}
  332. .config-body pre{
  333. font-family:var(--font-mono);font-size:12px;line-height:1.65;
  334. padding:18px 20px;overflow-x:auto;color:#DDE6EF;
  335. background:#12213A;border-radius:0;
  336. }
  337. .config-note{
  338. margin-top:14px;font-size:12.5px;color:var(--muted);line-height:1.7;
  339. display:flex;gap:8px;align-items:flex-start;
  340. }
  341. .back-home{margin-top:26px;text-align:center;}
  342. .back-home a{
  343. display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--brand-ink);
  344. }
  345. .back-home a:hover{text-decoration:underline;}
  346. /* ===== 页脚 ===== */
  347. .site-footer{border-top:1px solid var(--line);background:var(--surface);padding:34px 0;}
  348. .footer-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;}
  349. .footer-src a{
  350. display:inline-block;margin:4px 12px 4px 0;font-size:13px;color:var(--brand-ink);
  351. border-bottom:1px dashed var(--line-strong);
  352. }
  353. .footer-src a:hover{border-bottom-color:var(--brand);}
  354. .footer-note{font-size:12px;color:var(--muted);line-height:1.8;max-width:640px;}
  355. /* ---- 演示版页脚(基础信息 + 快捷跳转) ---- */
  356. .site-footer{padding:44px 0 0;background:#fff;border-top:1px solid var(--line);font-family:"PingFang SC","PingFangSC-Regular","Helvetica Neue",sans-serif;}
  357. .site-footer .wrap{display:flex;flex-direction:column;}
  358. .footer-main{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;flex-wrap:wrap;padding:0 0 34px;}
  359. .footer-brand{flex:1.2;min-width:260px;max-width:380px;}
  360. .footer-brand .fb-title{display:flex;align-items:center;gap:9px;font-size:20px;font-weight:700;color:var(--brand-ink);letter-spacing:.5px;}
  361. .footer-brand .fb-logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#2E8CFF,#1678FF);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;}
  362. .footer-brand .fb-desc{margin-top:12px;font-size:13px;line-height:1.9;color:var(--muted);}
  363. .footer-brand .fb-endpoint{margin-top:14px;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12.5px;color:var(--brand-ink);background:var(--brand-soft-2);border:1px solid var(--line-strong);padding:5px 11px;border-radius:8px;}
  364. .footer-col{min-width:150px;}
  365. .footer-col h4{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:14px;position:relative;padding-left:11px;}
  366. .footer-col h4::before{content:"";position:absolute;left:0;top:3px;width:3px;height:13px;border-radius:2px;background:var(--brand);}
  367. .footer-col ul{list-style:none;margin:0;padding:0;}
  368. .footer-col li{margin-bottom:10px;line-height:1.4;}
  369. .footer-col a,.footer-col button{background:none;border:none;padding:0;cursor:pointer;font-size:13px;color:#43556b;font-family:inherit;text-align:left;transition:.15s;}
  370. .footer-col a:hover,.footer-col button:hover{color:var(--brand);}
  371. .footer-link-ico{margin-right:6px;font-style:normal;color:#93A5BB;}
  372. .footer-bottom{border-top:1px solid var(--line);padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#93A5BB;}
  373. .footer-bottom .fb-right a{margin-left:16px;color:#72859A;}
  374. .footer-bottom .fb-right a:hover{color:var(--brand);}
  375. /* ===== 响应式 ===== */
  376. @media (max-width:760px){
  377. .footer-main{flex-direction:column;gap:26px;}
  378. }
  379. @media (max-width:960px){
  380. .steps{grid-template-columns:1fr;}
  381. .section{padding:56px 0;}
  382. .nav{display:none;}
  383. }
  384. @media (max-width:520px){
  385. .service-grid{grid-template-columns:1fr;}
  386. }
  387. @media (prefers-reduced-motion:reduce){
  388. html{scroll-behavior:auto;}
  389. .svc-card{transition:none;}
  390. }
  391. /* ===== 顶栏(mcp.eiacloud.com 导航) ===== */
  392. .svg-icon{width:1em;height:1em;vertical-align:-0.15em;fill:currentColor;overflow:hidden;outline:none;}
  393. .svg-icon use{pointer-events:none;}
  394. .desktop-header{position:relative;z-index:30;background:#fff;}
  395. .desktop-header .header-inner{min-height:64px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;}
  396. .desktop-header .header-left{min-width:0;display:flex;align-items:center;gap:20px;}
  397. .desktop-header .brand-wrapper{flex-shrink:0;display:flex;align-items:center;gap:10px;cursor:pointer;}
  398. .desktop-header .brand-logo{width:40px;height:40px;object-fit:contain;}
  399. .desktop-header .brand-text{display:flex;align-items:center;}
  400. .desktop-header .brand-title{font-weight:600;font-size:28px;line-height:1;color:#1678ff;letter-spacing:1px;}
  401. .desktop-header .navigation-list{min-width:0;display:flex;align-items:center;flex-wrap:nowrap;gap:0;}
  402. .desktop-header .upload-metrial{position:relative;padding-bottom:12px;margin-bottom:-12px;}
  403. .desktop-header .upload-metrial:hover .upload-category{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
  404. .desktop-header .top-load{height:36px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:18px;background:#1678ff;box-shadow:rgba(66,133,244,.4) 0 2px 6px;color:#fff;cursor:pointer;user-select:none;}
  405. .desktop-header .top-load img{width:18px;height:18px;object-fit:contain;}
  406. .desktop-header .top-load span{font-size:15px;font-weight:600;line-height:20px;}
  407. .desktop-header .upload-category{position:absolute;top:calc(100% - 2px);left:0;z-index:20;opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s;}
  408. .desktop-header .upload-category-wrapper{width:180px;margin:0;padding:4px 0;list-style:none;border-radius:12px;background:#fff;box-shadow:rgba(31,52,88,.16) 0 12px 30px;border:1px solid #eef2f8;}
  409. .desktop-header .upload-category-li{height:40px;padding:0 20px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background-color .2s,color .2s;}
  410. .desktop-header .upload-category-li:hover{background:#f4f8ff;}
  411. .desktop-header .upload-category-li:hover span{color:#1678ff;}
  412. .desktop-header .upload-category-li img{width:20px;height:20px;object-fit:contain;flex-shrink:0;}
  413. .desktop-header .upload-category-li span{font-size:14px;line-height:20px;color:#333;transition:color .2s;white-space:nowrap;}
  414. .desktop-header .navigation-item,.desktop-header .text-action{border:none;outline:none;background:transparent;cursor:pointer;transition:.2s;}
  415. .desktop-header .navigation-item{padding:0;margin-right:30px;font-size:16px;line-height:20px;color:#333;white-space:nowrap;position:relative;flex-shrink:0;}
  416. .desktop-header .navigation-item:hover,.desktop-header .navigation-item.active{color:#1678ff;}
  417. .desktop-header .ai-auto-fill{position:absolute;top:-17px;left:31px;background:url("https://cdntest.eiacloud.com/hpyzs/ai-auto-fill-bg.png") 0 0/100% 100%;display:flex;font-size:12px;line-height:16px;color:#fff;font-family:"PingFang SC","PingFang SC";gap:1px;width:56px;height:20px;padding:0 4px 4px 1px;}
  418. .desktop-header .ai-auto-fill img{width:14px;height:14px;margin-top:1px;}
  419. .desktop-header .ai-auto-fill span{line-height:16px;}
  420. .desktop-header .header-right{flex-shrink:0;display:flex;align-items:center;gap:20px;font-weight:400;font-size:16px;color:#333;}
  421. .desktop-header .head-middle-link{display:inline-flex;align-items:center;flex-shrink:0;line-height:0;}
  422. .desktop-header .head-middle-link img{height:54px;display:block;object-fit:contain;}
  423. .desktop-header .text-action{margin-right:10px;height:32px;padding:0;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:#333;}
  424. .desktop-header .text-action:hover{color:#1678ff;}
  425. .desktop-header .quick-action-wrapper{position:relative;display:inline-flex;align-items:center;}
  426. .desktop-header .quick-action-wrapper.has-dropdown{padding-bottom:16px;margin-bottom:-16px;}
  427. .desktop-header .quick-action-wrapper.has-dropdown:hover .aq-dropdown{opacity:1;visibility:visible;transform:translate(-50%);pointer-events:auto;}
  428. .desktop-header .aq-dropdown{position:absolute;top:100%;left:50%;z-index:40;padding-top:8px;opacity:0;visibility:hidden;transform:translate(-50%,8px);pointer-events:none;transition:opacity .2s,transform .2s,visibility .2s;}
  429. .desktop-header .aq-down-app{width:200px;padding:16px;border-radius:12px;background:#fff;box-shadow:rgba(31,52,88,.16) 0 12px 30px;border:1px solid #eef2f8;text-align:center;}
  430. .desktop-header .aq-qr-image{width:160px;height:160px;display:block;margin:0 auto;object-fit:cover;}
  431. .desktop-header .download-app-contents{margin-top:12px;}
  432. .desktop-header .download-app-text{margin-bottom:12px;font-size:14px;line-height:22px;font-weight:600;color:#4c535c;}
  433. .desktop-header .gda-btn{width:100%;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e8eaec;background:transparent;color:#333;text-decoration:none;box-sizing:border-box;transition:.2s;}
  434. .desktop-header .gda-btn:hover{color:#1678ff;border-color:#1678ff;background:#f4f8ff;}
  435. .desktop-header .gda-btn-sm{font-size:16px;line-height:22px;}
  436. .desktop-header .login-button{flex-shrink:0;margin:0;font-size:16px;line-height:20px;color:#333;cursor:pointer;white-space:nowrap;}
  437. .desktop-header .login-button:hover{color:#1678ff;}
  438. /* ===== 顶栏登录后用户区 ===== */
  439. .desktop-header .user-area{flex-shrink:0;display:flex;align-items:center;gap:12px;position:relative;}
  440. .ua-user{display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 8px;border-radius:20px;transition:background .2s;}
  441. .ua-user:hover{background:#f4f8ff;}
  442. .ua-avatar{width:28px;height:28px;border-radius:50%;flex:none;background:linear-gradient(135deg,#3B96FF,#1678FF);color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;}
  443. .ua-name{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;color:#333;}
  444. .ua-caret{color:#97A3B0;transition:transform .2s;}
  445. .user-area.open .ua-caret{transform:rotate(180deg);}
  446. .ua-cloudchip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:linear-gradient(135deg,#FFF6E5,#FFEFD2);border:1px solid #FFD98A;font-size:13px;font-weight:500;color:#9A6B00;}
  447. .ua-cloudchip b{font-size:15px;color:#B26A00;}
  448. .ua-chip-ico,.ua-di-ico{font-style:normal;font-weight:700;color:#F0A81D;font-size:11px;}
  449. .ua-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;padding:6px;border-radius:12px;background:#fff;border:1px solid #EEF2F8;box-shadow:rgba(31,52,88,.16) 0 12px 30px;opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;transition:.2s;}
  450. .user-area.open .ua-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
  451. .ua-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;background:transparent;text-align:left;font-size:13.5px;color:#333;cursor:pointer;border-radius:8px;transition:.15s;white-space:nowrap;}
  452. .ua-dropdown-item:hover{background:#f4f8ff;color:#1678ff;}
  453. .ua-dropdown-item.ua-logout{color:#D33;border-top:1px solid #f0f3f8;border-radius:0 0 8px 8px;margin-top:4px;padding-top:10px;}
  454. .ua-dropdown-item.ua-logout:hover{background:#fff1f0;color:#c62828;}
  455. /* ===== 通用遮罩与居中弹窗(品牌蓝风格) ===== */
  456. .wb-overlay{position:fixed;inset:0;background:rgba(16,34,64,.42);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:500;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;}
  457. .wb-overlay.show{opacity:1;visibility:visible;}
  458. .wb-modal{width:min(94vw,420px);background:#fff;border-radius:18px;box-shadow:0 30px 70px -20px rgba(6,26,54,.5);overflow:hidden;transform:translateY(16px) scale(.96);transition:.24s cubic-bezier(.2,.8,.2,1);font-family:var(--font-sans);}
  459. .wb-overlay.show .wb-modal{transform:translateY(0) scale(1);}
  460. .wb-modal-head{position:relative;padding:18px 24px;background:linear-gradient(120deg,#EDF5FF,#F7FBFF);border-bottom:1px solid #E7EFFA;}
  461. .wb-modal-head h3{font-size:16px;color:#0B1F3F;display:flex;align-items:center;gap:8px;}
  462. .wb-close{position:absolute;right:14px;top:14px;width:28px;height:28px;border:none;background:transparent;cursor:pointer;color:#8CA0B8;font-size:22px;line-height:1;border-radius:50%;}
  463. .wb-close:hover{background:#e9f2ff;color:#1678ff;}
  464. .wb-modal-body{padding:22px 24px;}
  465. .wb-modal-foot{padding:0 24px 22px;text-align:right;}
  466. .wb-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:110px;padding:10px 20px;border:none;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:.18s;font-family:var(--font-sans);}
  467. .wb-btn.primary{background:linear-gradient(135deg,#2E8CFF,#1678FF 60%,#0B63E0);color:#fff;box-shadow:0 8px 18px -8px rgba(22,120,255,.7);}
  468. .wb-btn.primary:hover{filter:brightness(1.07);transform:translateY(-1px);}
  469. .wb-btn.ghost{background:#fff;color:#5F7490;border:1px solid #D6E2F0;}
  470. .wb-btn.ghost:hover{border-color:#1678ff;color:#1678ff;}
  471. .wb-field{margin-bottom:14px;}
  472. .wb-field label{display:block;font-size:13px;color:#57708C;margin-bottom:6px;}
  473. .wb-field input{width:100%;height:42px;padding:0 14px;border:1px solid #D6E2F0;border-radius:10px;font-size:14px;outline:none;transition:.15s;color:#333;background:#fff;box-sizing:border-box;}
  474. .wb-field input:focus{border-color:#1678ff;box-shadow:0 0 0 3px rgba(22,120,255,.12);}
  475. .wb-err{color:#E03131;font-size:12.5px;margin-top:4px;display:none;}
  476. .wb-tip{color:#8CA0B8;font-size:12.5px;line-height:1.6;}
  477. /* 领取成功弹窗 */
  478. .wb-success-badge{width:64px;height:64px;border-radius:50%;margin:4px auto 14px;background:linear-gradient(135deg,#2E8CFF,#1678FF);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 26px -10px rgba(22,120,255,.6);}
  479. .wb-success-badge svg{width:34px;height:34px;color:#fff;stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  480. .wb-success-title{font-size:19px;font-weight:700;color:#0B1F3F;text-align:center;}
  481. .wb-success-sub{text-align:center;color:#5F7490;font-size:14px;margin-top:8px;line-height:1.7;}
  482. .wb-cloud-add{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;background:linear-gradient(135deg,#FFF6E5,#FFEFD2);border:1px solid #FFD98A;color:#B26A00;font-weight:700;font-size:15px;margin:0 4px;}
  483. .wb-login-badge{width:56px;height:56px;border-radius:50%;margin:0 auto 12px;background:linear-gradient(135deg,#EAF2FF,#DCE9FF);display:flex;align-items:center;justify-content:center;}
  484. .wb-login-badge svg{width:28px;height:28px;stroke:#1678ff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  485. .wb-hint{background:#FFF8E6;border:1px solid #FFE4A8;color:#8A5B00;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.7;margin-bottom:16px;display:flex;gap:8px;}
  486. .wb-hint svg{width:16px;height:16px;flex:none;stroke:#E8890C;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:2px;}