:root{color:#e8eefc;background:#08101f;font-family:Inter,ui-sans-serif,system-ui,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#1c3468 0,#08101f 42%,#050912 100%);min-height:100vh;margin:0}button,input{font:inherit}.app{max-width:1180px;margin:0 auto;padding:28px}header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}header div{flex-direction:column;gap:4px;display:flex}header b{font-size:24px}header span,header a{color:#9fb0d0;text-decoration:none}.hero,.settings,.panel,.empty{background:#0d1830c7;border:1px solid #97b0dc2e;border-radius:24px;margin-bottom:18px;padding:24px;box-shadow:0 20px 70px #00000047}.hero{justify-content:space-between;align-items:center;gap:28px;display:flex}.hero h1{margin:8px 0;font-size:36px;line-height:1.15}.hero p{color:#b9c6df;max-width:720px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:#6ee7ff!important}.primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#38bdf8,#6366f1);border:0;border-radius:18px;min-width:150px;padding:16px 24px;font-weight:800}.primary:disabled{opacity:.6}.settings{grid-template-columns:2fr 160px 1.5fr;align-items:end;gap:16px;display:grid}.settings label{color:#cbd7ef;flex-direction:column;gap:8px;display:flex}.settings input{color:#eef5ff;background:#07101f;border:1px solid #97b0dc40;border-radius:14px;padding:12px}.checkline{align-items:center;flex-direction:row!important}.checkline input{width:18px;height:18px}.error{color:#fecdd3;background:#7f1d1d59;border:1px solid #fb7185;border-radius:18px;margin-bottom:18px;padding:14px}.scores{grid-template-columns:repeat(3,1fr) 1.4fr;gap:16px;margin-bottom:18px;display:grid}.score,.summary{background:#0d1830c7;border:1px solid #97b0dc2e;border-radius:22px;align-items:center;gap:14px;padding:18px;display:flex}.summary{flex-direction:column;justify-content:center;align-items:flex-start}.summary b{font-size:18px}.summary span{color:#9fb0d0}.circle{background:conic-gradient(var(--c) var(--p),#ffffff1a 0);border-radius:50%;flex:none;place-items:center;width:86px;height:86px;display:grid;position:relative}.circle:after{content:"";background:#08101f;border-radius:50%;position:absolute;inset:8px}.circle b,.circle span{z-index:1}.circle b{font-size:24px}.circle span{font-size:12px}.green{--c:#22c55e}.yellow{--c:#f59e0b}.red{--c:#ef4444}.score strong{display:block}.score small{color:#aab8d4}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel h2{margin:0 0 14px}.panel button{color:#e8eefc;cursor:pointer;background:#0b1730;border:1px solid #97b0dc40;border-radius:12px;padding:10px 12px}.warn-panel{background:linear-gradient(135deg,#f59e0b1f,#0d1830c7);border-color:#f59e0b73}.route{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:12px;display:grid}.route i{text-align:center;color:#7dd3fc}.route-node{background:#ffffff0a;border:1px solid #97b0dc29;border-radius:18px;padding:16px}.route-node b{display:block}.route-node span{color:#9fb0d0;word-break:break-all}.group{margin-top:16px}.group h3{color:#7dd3fc;margin:12px 0}.check{background:#ffffff09;border:1px solid #97b0dc26;border-radius:16px;margin:10px 0;padding:12px}.check summary{cursor:pointer;grid-template-columns:auto 220px 1fr;align-items:center;gap:12px;display:grid}.check summary span{color:#b9c6df}.check pre{white-space:pre-wrap;color:#a7f3d0;background:#050912;border-radius:12px;padding:12px;overflow:auto}.badge{color:#fff;border-radius:999px;padding:5px 10px;font-size:12px;font-style:normal}.badge.pass{background:#16a34a}.badge.warn{background:#d97706}.badge.fail{background:#dc2626}.badge.unknown{background:#64748b}.evidence{border-top:1px solid #97b0dc1f;gap:12px;padding:12px 0;display:flex}.evidence b{color:#fbbf24}.evidence span{flex:1}.evidence em{color:#9fb0d0}.export{gap:12px;margin-top:16px;display:flex}.empty{text-align:center}.orb{background:radial-gradient(circle,#38bdf8,#1e3a8a);border-radius:50%;place-items:center;width:96px;height:96px;margin:10px auto 18px;font-size:44px;display:grid}@media (width<=900px){.hero,.scores,.settings,.route{grid-template-columns:1fr;display:grid}.hero{align-items:stretch}.route i{transform:rotate(90deg)}.check summary{grid-template-columns:1fr}.app{padding:16px}}
