:root{--bg:#060609;--bg-2:#0d0d14;--bg-3:#11111a;--surface:#151522;--surface-2:#1a1a2a;--border:#1e1e32;--border-2:#2a2a44;--accent:#00d4ff;--accent-dim:#00d4ff1f;--green:#00e676;--yellow:#ffb300;--red:#ff3d3d;--purple:#b47cff;--orange:#ff6b35;--text:#eeeef5;--text-2:#9090b8;--text-3:#484870;--font-display:"Syne", sans-serif;--font-mono:"JetBrains Mono", monospace;--font-serif:"Instrument Serif", serif;--radius:12px;--radius-sm:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}.card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius)}.btn{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-display);white-space:nowrap;border:none;align-items:center;gap:8px;padding:12px 24px;font-size:13px;font-weight:700;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent), #09c);color:#000}.btn-primary:hover:not(:disabled){opacity:.88;transform:scale(1.02)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-2);border:1px solid var(--border-2);color:var(--text-2)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.input-field{background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);width:100%;font-family:var(--font-mono);outline:none;padding:13px 16px;font-size:13px;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00d4ff14}.input-field::placeholder{color:var(--text-3)}.badge{font-size:10px;font-weight:700;font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.badge-pass{color:var(--green);background:#00e6761a;border:1px solid #00e67633}.badge-fail{color:var(--red);background:#ff3d3d1a;border:1px solid #ff3d3d33}.badge-warn{color:var(--yellow);background:#ffb3001a;border:1px solid #ffb30033}.badge-info{color:var(--accent);background:#00d4ff1a;border:1px solid #00d4ff33}.badge-gray{color:var(--text-3);background:#52527a1f;border:1px solid #52527a33}@keyframes scanLine{0%{top:-2px}to{top:100%}}.scan-line{background:linear-gradient(90deg, transparent, var(--accent), transparent);pointer-events:none;z-index:1;height:2px;animation:2s linear infinite scanLine;position:absolute;left:0;right:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.4s both fadeIn}.spinner{border:2px solid #00d4ff33;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}
